В .Net у вас обычно есть файл app.config и встроенные способы доступа к конфигурации.
Есть ли эквивалентный стандартный подход к конфигурации с использованием Qt?
Например, предположим, что мое приложение подключается к онлайн-серверу, я хочу иметь возможность хранить сведения о соединении (определяется пользователем).
Является ли это случаем «накатить свое», или есть способ сохранить и прочитать эти конфигурации, используя XML, или любой другой формат с простыми методами чтения / записи, предоставляемыми Qt?
Изменить: чтобы добавить некоторые сложности к вопросу. Это консольное приложение для Linux, поэтому, пожалуйста, обратите внимание на файл и прозрачную конфигурацию.
Вы могли бы использовать QSettings
за это. Пожалуйста, обратитесь к документации для деталей:
http://qt-project.org/doc/qt-5.1/qtcore/qsettings.html
Вы всегда можете использовать и другие форматы, такие как XML, Json и т. Д., Но, вообще говоря, QSettings — это способ, или если вы пишете приложение KDE, то, вероятно, KConfig
,
Это два важных метода, которые вы должны знать при работе с QSettings для чтения и записи:
QVariant QSettings::value(const QString & key,
const QVariant & defaultValue = QVariant()) const
void QSettings::setValue(const QString & key, const QVariant & value)
Затем вы можете просто придерживаться нативного формата (или даже ini в вашем Linux, если хотите):
QSettings :: NativeFormat 0 Сохраните настройки, используя наиболее
соответствующий формат хранения для платформы. В Windows это означает
системный реестр; в Mac OS X это означает API CFPreferences; на
Unix, это означает текстовые файлы конфигурации в формате INI.
Здесь вы можете найти пример для вашего удобства:
#include <QSettings>
int main()
{
....
QSettings settings("Foo", "Bar");
// settings.beginGroup("application");
QString string = settings.value("foo", "bar");
// settings.endGroup();
....
}
Обратите внимание, что группы являются необязательными, и это зависит от вашей конкретной цели. Вы можете группировать настройки таким образом, чтобы сохранить некоторые из них.
Это также может быть важно для вас знать в соответствии с документацией:
В системах Unix, если формат файла — NativeFormat, по умолчанию используются следующие файлы:
$ HOME / .config / MySoft / Star Runner.conf (Qt для встраиваемых Linux-систем: $ HOME / Settings / MySoft / Star Runner.conf)
$ HOME / .config / MySoft.conf (Qt для встраиваемых Linux-систем: $ HOME / Settings / MySoft.conf)
/ etc / xdg / MySoft / Star Runner.conf
/etc/xdg/MySoft.conf
Других решений пока нет …