最近,我试图将一个SQLite数据库放到我正在编写的Qt5应用程序中。我希望它是普遍可访问的-这是在所有的系统,无论它是在哪里安装。我把它作为一个资源,然后发现,显然不能将数据库放在资源中,因为传递给setDatabaseName的数据库路径的字符串不会被转换到资源系统,因此无法找到数据库。
那我能把它放哪儿呢?我不想像C:\repo.db或D:\repo.db那样把它放在驱动器的根目录上,因为很多人讨厌凌乱他们的根目录的文件(比如我)。我打算将它放在源文件夹中,并以"repo.db“或"./resources/database/repo.db”的形式访问它,但即使是QFile也没有看到。我可以把它放在哪里,怎样才能进入那里?我的设置文件将在我的资源中,但我不确定我是否可以更新该文件。我需要一个地方,从应用程序安装在任何系统上,包括我自己的,以便它可以访问,同时编码,并在它构建。
我不是在征求意见--我想要的不是根目录,而是一个通用的地方,比如安装目录(但是如何用代码找到这个位置呢?)或者一个设置目录(但是我如何在某个地方设置它,以便以后可以找到它?)
发布于 2021-10-19 13:46:13
为此目的,Qt提供了返回平台特定标准路径的QStandardPaths函数列表,如桌面路径、临时目录等。对于特定情况,您可以将数据库放在对应于QStandardPaths::AppDataLocation键的目录中。
发布于 2021-10-19 09:34:49
您可以使用QSettings保存路径、设置并还原它们。
QSettings m_Arhive("Company", "app_name");
//Set DB path
m_Arhive.setValue("DBPath", "c:/somewhere/database");
//Get DB path
m_Arhive.value("DBPath").toString()https://stackoverflow.com/questions/69628241
复制相似问题