【发布时间】:2016-01-22 12:06:10
【问题描述】:
我开始为我的程序制作一个设置表单,但我有点卡在设置数据上。我可以创建一个QSettings 实例,但我应该如何处理它?
QApplication app(argc, argv);
QSettings settings;
settings.setValue("test", QVariant((int)42));
// Now what?
【问题讨论】:
我开始为我的程序制作一个设置表单,但我有点卡在设置数据上。我可以创建一个QSettings 实例,但我应该如何处理它?
QApplication app(argc, argv);
QSettings settings;
settings.setValue("test", QVariant((int)42));
// Now what?
【问题讨论】:
通常,您不需要知道设置的存储位置。 QSettings 的常用用法:您需要设置您的组织名称以及您的应用程序的名称。保存时需要设置section和key,以及一个参数。
//set names
QCoreApplication::setOrganizationName("MySoft");
QCoreApplication::setApplicationName("Star Runner");
//...
QSettings settings;
//saving
settings.setValue("MySection/MyKey", 42);
//loading: section, key, and default value (default value will be used if the setting doesn't exist)
int val = settings.value("MySection/MyKey", 0).toInt();
更新
//Perhaps, for Android it is necessary to call a function
settings.sync();
(来自文档:
void QSettings::sync()将所有未保存的更改写入永久 存储,并重新加载已更改的任何设置 同时通过另一个应用程序。这个函数是自动调用的 来自 QSettings 的析构函数和定期的事件循环 间隔,所以你通常不需要自己调用它
)
【讨论】:
settings.sync(); 到底是什么意思?