Size: a a a

2021 February 11

RG

Renat Garaev in Qt
Alexander P
нет, в .config же кладет
Я тоже предпогаю, что в ~/.config положит в Unix, но нету под рукой FreeBSD например, чтобы проверить
источник

AP

Alexander P in Qt
вот, даже в доке это указано
источник

AS

Anatoly Shirokov in Qt
тогда я прогнал
источник

AS

Anatoly Shirokov in Qt
все есть в доке
источник

M

Mr.Mait in Qt
Aleksandr Bazhenov
Друзья, привет!
На Windows если сделать как показано ниже, то при использовании QSettings c NativeFormat чтение/запись будет производиться в HKEY_CURRENT_USER\Software\OrganizationName\ApplicationName. Куда я буду писать и откуда читать на линуксе?

 QCoreApplication::setOrganizationName("OrganizationName");
QCoreApplication::setApplicationName("ApplicationName");
Почему бы не использовать QSettings с файлом, а не реестром?
источник

AP

Alexander P in Qt
в линуксах всегда будет файл, даже если NativeFormat указать
источник

RG

Renat Garaev in Qt
Alexander P
в линуксах всегда будет файл, даже если NativeFormat указать
А как же гном? У нем есть же реестр?
источник

AP

Alexander P in Qt
Renat Garaev
А как же гном? У нем есть же реестр?
Вот с гномом не проверял, но я сомневаюсь, что у них прям отдельная реализация для него есть
источник

AP

Alexander P in Qt
Опять же, если идти по доке, всё пишется в ini-файл
источник

M

Mr.Mait in Qt
QSettings settings("settings.conf", QSettings::IniFormat);

Никакой боли, файл создается где и бинарник. На windows и linux
источник

AB

Aleksandr Bazhenov in Qt
Mr.Mait
Почему бы не использовать QSettings с файлом, а не реестром?
А как это сделать один раз указав:
QCoreApplication::setOrganizationName("OrganizationName");
QCoreApplication::setApplicationName("ApplicationName");

И потом при использовании QSettings не передавать ему никаких параметров в конструктор, и что бы работало на Windows и Unix?
источник

M

Mr.Mait in Qt
Aleksandr Bazhenov
А как это сделать один раз указав:
QCoreApplication::setOrganizationName("OrganizationName");
QCoreApplication::setApplicationName("ApplicationName");

И потом при использовании QSettings не передавать ему никаких параметров в конструктор, и что бы работало на Windows и Unix?
В main.cpp указываешь один раз и все
источник

M

Mr.Mait in Qt
Ну или где нибудь в начале программы
источник

AB

Aleksandr Bazhenov in Qt
Mr.Mait
В main.cpp указываешь один раз и все
это да. как сделать, что бы QSettings в файл писал, а не в реестр
источник

AP

Alexander P in Qt
Aleksandr Bazhenov
это да. как сделать, что бы QSettings в файл писал, а не в реестр
эээ, так QSettings инкапсулирует этот функционал
источник

M

Mr.Mait in Qt
Aleksandr Bazhenov
это да. как сделать, что бы QSettings в файл писал, а не в реестр
Ну вот выше написал пример. Указываешь файл и формат. А дальше работаешь как обычным QSettings
источник

AP

Alexander P in Qt
ты указываешь куда писать в конструкторе QSettings
источник

AB

Aleksandr Bazhenov in Qt
Alexander P
ты указываешь куда писать в конструкторе QSettings
я же написал выше, что если я указываю в main
QCoreApplication::setOrganizationName("OrganizationName");
QCoreApplication::setApplicationName("ApplicationName");

то мне не надо указывать куда писать, так как писать будет в HKEY_CURRENT_USER\Software\OrganizationName\ApplicationName
источник

AP

Alexander P in Qt
Aleksandr Bazhenov
я же написал выше, что если я указываю в main
QCoreApplication::setOrganizationName("OrganizationName");
QCoreApplication::setApplicationName("ApplicationName");

то мне не надо указывать куда писать, так как писать будет в HKEY_CURRENT_USER\Software\OrganizationName\ApplicationName
и выше уже дали ответ, как сделать запись не в реестр
источник

AP

Alexander P in Qt
В QSettings указываешь нужные настройки, затем работаешь с ним так, как всегда делал. Ничего другого.
источник