首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我不能将SQLite数据库放在我的资源中,那么我可以将它放在QT应用程序中的哪里呢?

如果我不能将SQLite数据库放在我的资源中,那么我可以将它放在QT应用程序中的哪里呢?
EN

Stack Overflow用户
提问于 2021-10-19 09:23:11
回答 2查看 142关注 0票数 0

最近,我试图将一个SQLite数据库放到我正在编写的Qt5应用程序中。我希望它是普遍可访问的-这是在所有的系统,无论它是在哪里安装。我把它作为一个资源,然后发现,显然不能将数据库放在资源中,因为传递给setDatabaseName的数据库路径的字符串不会被转换到资源系统,因此无法找到数据库。

那我能把它放哪儿呢?我不想像C:\repo.db或D:\repo.db那样把它放在驱动器的根目录上,因为很多人讨厌凌乱他们的根目录的文件(比如我)。我打算将它放在源文件夹中,并以"repo.db“或"./resources/database/repo.db”的形式访问它,但即使是QFile也没有看到。我可以把它放在哪里,怎样才能进入那里?我的设置文件将在我的资源中,但我不确定我是否可以更新该文件。我需要一个地方,从应用程序安装在任何系统上,包括我自己的,以便它可以访问,同时编码,并在它构建。

我不是在征求意见--我想要的不是根目录,而是一个通用的地方,比如安装目录(但是如何用代码找到这个位置呢?)或者一个设置目录(但是我如何在某个地方设置它,以便以后可以找到它?)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-19 13:46:13

为此目的,Qt提供了返回平台特定标准路径的QStandardPaths函数列表,如桌面路径、临时目录等。对于特定情况,您可以将数据库放在对应于QStandardPaths::AppDataLocation键的目录中。

票数 2
EN

Stack Overflow用户

发布于 2021-10-19 09:34:49

您可以使用QSettings保存路径、设置并还原它们。

代码语言:javascript
复制
QSettings m_Arhive("Company", "app_name");
//Set DB path
m_Arhive.setValue("DBPath", "c:/somewhere/database");
//Get DB path
m_Arhive.value("DBPath").toString()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69628241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档