如何使用 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中,如何实现写入或创建另1个PHP文件?

PHP如何把数据写入JSON文件并在另一PHP文件读取JSON数据?

学习MIPS汇编:读取文本并写入文件

如何锁定文件并避免在写入时读取

如何从文件中写入/读取变量并使用 Makefile 进行解析?

js创建写入读取文件(转)