我正在使用QSettings
将一些数据存储为Windows中的ini文件。
我想看看ini文件,但我不知道ini文件的位置是什么。
这是我的代码:
QSettings *set = new QSettings(QSettings::IniFormat, QSettings::UserScope, "bbb", "aaa");
set->setValue("size", size());
set->setValue("pos", pos());
我在哪里看?或者我可能会错过将其写入文件的代码?
QSettings
什么时候写出它的值?
答案 0 :(得分:36)
要打印出设置文件的确切位置,请使用QSettings类的方法fileName方法。
QSettings settings("folderName", "fileName");
qDebug() << settings.fileName();
控制台输出看起来像:
/home/user/.config/folderName/fileName.conf
答案 1 :(得分:10)
我想你会在这里找到你想要的一切:http://doc.qt.io/archives/qt-4.7/qsettings.html
这是特定的平台形式,见下:
平台特定说明 存储应用程序设置的位置
您也可以将设置存储在文件中:
QSettings settings("/home/petra/misc/myapp.ini",
QSettings::IniFormat);
答案 2 :(得分:7)
QSettings
将位置更改保存到QSettings.Scope
enum。 QSettings
默认保存到Local范围。在Linux上,我找到了我的本地设置:
~/.config/CompanyName/ApplicationName.conf
答案 3 :(得分:2)
如果您创建QSettings
而未提供任何特定路径,则ini
文件将位于application path。
QSettings Settings("myapp.ini", QSettings::IniFormat);
Settings.setValue("Test", "data");
//...
qDebug() << QApplication::applicationDirPath();
但请注意:应用程序路径可能会更改:例如,如果您使用Qt Creator开发应用程序,则在调试模式下,应用程序路径位于/debug
子文件夹中。
如果您在发布模式下运行它,则应用程序路径位于/release
子文件夹中。
部署应用程序时,默认情况下,应用程序路径与可执行文件位于同一文件夹中(至少对于Windows)。
答案 4 :(得分:2)
查看QStandardPaths
类,它链接到多个标准路径,包括所有支持平台上的配置。 https://doc.qt.io/qt-5/qstandardpaths.html
QT&gt; = 5.5:
QString path = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
QT&lt; 5.5:
QString path = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
共享配置目录,应用程序数据目录等中有配置文件的路径。
答案 5 :(得分:0)
在Mac OSX上,我在〜/ Library / Preferences
下找到了该文件QSettings类提供与平台无关的持久应用程序设置。 用户通常希望应用程序在会话中记住其设置(窗口大小和位置,选项等)。此信息通常存储在Windows上的系统注册表中,以及Mac OS X上的XML首选项文件中。在Unix系统上,如果没有标准,许多应用程序(包括KDE应用程序)都使用INI文本文件
答案 6 :(得分:0)
如下所示: C:\ Users \用户名\ AppData \ Roaming \ bbb
答案 7 :(得分:0)
在linux中,您可以使用此代码段或将此行插入到主代码中,以便使用python查找文件的位置。
from PyQt5.QtCore import QSettings
settings = QSettings("Organization Name", "App name")
print(QSettings.fileName(settings))
它应该返回这样的输出。
/$HOME/.config/Organization Name/App name.conf
答案 8 :(得分:0)
在没有提供ini文件名的Windows上,您将在注册表中找到数据。 使用此代码段:
int red = color.red();
int green = color.green();
int blue = color.blue();
QSettings settings("Joe", "SettingsDemo");
qDebug() << settings.fileName();
settings.beginGroup("ButtonColor");
settings.setValue("button1r", red);
settings.setValue("button1g", green);
settings.setValue("button1b", blue);
settings.endGroup();
运行此代码后,您将看到输出:
"\\HKEY_CURRENT_USER\\Software\\Joe\\SettingsDemo"
现在,打开regedit工具并遵循以下路径列表:1