如何使用 Qt/C++ 创建/读取/写入文件并使用程序在本地存储设置
Posted
技术标签:
【中文标题】如何使用 Qt/C++ 创建/读取/写入文件并使用程序在本地存储设置【英文标题】:How to use Qt/C++ to create/read/write files and store settings local with the program 【发布时间】:2013-04-07 17:42:50 【问题描述】:我是一个不幸的 C++ 初学者,使用 Qt GUI 设计器程序似乎非常适合我的需求,但我在尝试编写为此所需的代码时遇到了问题。我可以使用 QSettings 字符串将本地设置存储在硬盘驱动器上,但是当程序执行某些程序执行的 %HOME_LOCAL%\APPS_SETTINGS 公牛时,我个人讨厌它。我需要在程序目录中为设置和本地\主机数据库保存一个文本文件,以记住以后要读取的字符串。
使用本地主机文本数据库需要哪一行代码,或者有更好的选择吗?以及如何将其与本地程序一起存储在其目录中?
【问题讨论】:
如果管理员安装应用程序,那么非管理员用户将无法正常使用该应用程序。 如果您将信息存储在应用程序旁边,您将在大多数操作系统上遇到权限故障。如果您计划将其部署到不仅仅是您自己的个人用途,您需要考虑将您的应用程序与数据分开。 【参考方案1】:您可以将QSettings
用于任何文件,constructor QSettings::QSettings ( const QString & fileName, Format format, QObject * parent = 0 )
。
获取程序目录,可以使用QCoreApplication::applicationDirPath()
。
所以,回答你的问题,在创建 QApplication 实例后声明:
QSettings *settings = new QSettings(
QCoreApplication::applicationDirPath() + "/settings.ini",
QSettings::IniFormat,
qApp);
但是,正如所讨论的 cmets 中所述,如果您将程序用于一般分发,则应使用操作系统默认值。检查QSettings
的所有构造函数,看看它能做什么。用户通常在应用程序目录中没有写权限。请注意,您还可以使用 QSettings::NativeFormat 将设置存储到 Windows 注册表。
【讨论】:
谢谢。我开始很快意识到这将是一个非常复杂的项目。..以上是关于如何使用 Qt/C++ 创建/读取/写入文件并使用程序在本地存储设置的主要内容,如果未能解决你的问题,请参考以下文章
PHP如何把数据写入JSON文件并在另一PHP文件读取JSON数据?