【发布时间】:2017-05-20 15:06:49
【问题描述】:
我正在尝试为 QSettings 创建自定义格式,但无法从存储中读取它。
在下面的代码中,如果我运行settings.setValue("test", 123"),它会正确调用写入函数并打印Calling writeSqlite。但是,如果我尝试settings.value("test"),它不会调用读取函数并且不会打印Calling readSqlite。
知道可能是什么问题吗?
bool readSqlite(QIODevice &device, QSettings::SettingsMap &map) {
qDebug() << "Calling readSqlite";
return true;
}
bool writeSqlite(QIODevice &device, const QSettings::SettingsMap &map) {
qDebug() << "Calling writeSqlite";
return true;
}
void Settings::initialize() {
const QSettings::Format SqliteFormat = QSettings::registerFormat("sqlite", &readSqlite, &writeSqlite);
QSettings::setDefaultFormat(SqliteFormat);
QSettings settings;
// This doesn't work:
// qDebug() << settings.value("test");
// This works:
// settings.setValue("test", 123456);
}
【问题讨论】:
-
您已配置 QApplication。 {您的应用程序}.setApplicationName(""), setOrganizationName('')
-
@eyllanesc,在我的应用程序的开头,我添加了
QCoreApplication::setOrganizationName(...)等,实际上QSettings使用默认存储,所以我认为组织、应用程序名称等已设置正确。
标签: qt sqlite qt5 storage qsettings