Подтвердить что ты не робот

QSettings - где находится файл ini?

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

Это мой код:

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

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

4b9b3361

Ответ 1

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

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

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

/home/user/.config/folderName/fileName.conf

Ответ 2

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

Это специфичная форма пластины, см. ниже:

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

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

QSettings settings("/home/petra/misc/myapp.ini",
                QSettings::IniFormat);

Ответ 3

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

~/.config/CompanyName/ApplicationName.conf

Ответ 4

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

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

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

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

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

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

Ответ 5

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

QT >= 5.5:

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

QT < 5,5:

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

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

Ответ 6

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

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

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

Ответ 7

в Windows путь, как показано ниже: C:\Users\имя_пользователя\AppData\Roaming\БББ