QSettings - где находится ini-файл? - PullRequest
27 голосов
/ 27 октября 2010

Я использую QSettings для хранения некоторых данных в виде файла ini в Windows.Я хочу посмотреть INI-файл, но не знаю, где находится INI-файл.

Это мой код:

QSettings *set = new QSettings(QSettings::IniFormat, QSettings::UserScope, "bbb", "aaa");
set->setValue("size", size());
set->setValue("pos", pos());

Где мне искать?Или, может быть, я пропускаю код, который записывает его в файл?Когда QSettings записывает свои значения?

Ответы [ 6 ]

36 голосов
/ 22 июля 2013

Чтобы распечатать точное местоположение вашего файла настроек, используйте метод fileName класса QSettings.

QSettings settings("folderName", "fileName");
qDebug() << settings.fileName();

Вывод на консоль выглядит так:

10 голосов
/ 27 октября 2010

Я думаю, вы найдете здесь все, что искали: http://doc.qt.io/archives/qt-4.7/qsettings.html

Это зависит от формы платформы, см. В разделе:

Примечания для платформы, где хранятся настройки приложения

Вы также можете хранить настройки в файлах:

QSettings settings("/home/petra/misc/myapp.ini",
                QSettings::IniFormat);
7 голосов
/ 19 июня 2013

QSettings сохранить изменения местоположения в QSettings.Scope enum .QSettings по умолчанию сохранить в локальной области.В Linux я нашел свои локальные настройки в:

~/.config/CompanyName/ApplicationName.conf

2 голосов
/ 07 ноября 2017

Проверьте класс QStandardPaths, он ссылается на несколько стандартных путей, включая конфигурацию на всех поддерживаемых платформах. https://doc.qt.io/qt-5/qstandardpaths.html

QT> = 5,5:

QString path = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);

QT <5,5: </p>

QString path = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);

Существуют пути для файлов конфигурации в общих каталогах конфигурации, каталогах данных приложений и т. Д.

2 голосов
/ 28 октября 2010

Если вы создаете QSettings без указания какого-либо конкретного пути, файл ini будет расположен в пути приложения .

QSettings Settings("myapp.ini", QSettings::IniFormat);
Settings.setValue("Test", "data");

//...
qDebug() << QApplication::applicationDirPath();

Будьте осторожны: приложениепуть может измениться: например, если вы разрабатываете свое приложение с Qt Creator, в режиме отладки путь к приложению находится в подпапке /debug.

Если вы запускаете его в режиме выпуска, путь к приложениюнаходится в подпапке /release.

И когда ваше приложение развернуто, по умолчанию путь к приложению находится в той же папке, что и исполняемый файл (по крайней мере, для Windows).

0 голосов
/ 16 февраля 2017

В Mac OSX я нашел файл в ~ / Library / Preferences

Класс QSettings предоставляет постоянные независимые от платформы настройки приложения.Пользователи обычно ожидают, что приложение запомнит свои настройки (размеры и положения окон, параметры и т. Д.) В течение сеанса.Эта информация часто хранится в системном реестре в Windows и в файлах настроек XML в Mac OS X. В системах Unix, в отсутствие стандарта, многие приложения (включая приложения KDE) используют текстовые файлы INI

http://doc.qt.io/archives/qt-4.7/qsettings.html

...