Qt/ c++写/读键值对文件
Qt/C++ Write/Read Key-Value Pair File
我有一个基于Qt/c++小部件的Mac应用程序。我有一系列的复选框、单选按钮和用于存储设置的文本字段。我想在单击Update按钮时将它们保存到键值对文件中,然后在应用程序加载时,读取该文件以将这些小部件设置回适当的状态。
是否有一个例子来说明这是如何完成的?
以下是我在Mac上使用的。然而,如果您修改settings
对象的setPath()
,您可以通过文档使其在其他平台上工作。
在mainwindow.h
中,我必须添加这些条目:
void readSettings();
void writeSettings();
下的Private Slots。
然后,在mainwindow.cpp
中,我添加了这些示例函数:
void MainWindow::readSettings()
{
QSettings settings;
settings.setPath(settings.IniFormat,settings.SystemScope,"/etc/xdg");
settings.beginGroup("General");
ui->checkBox1->setChecked(settings.value("checkBox1",false).toBool());
settings.endGroup();
}
void MainWindow::writeSettings()
{
QSettings settings;
settings.setPath(settings.IniFormat,settings.SystemScope,"/etc/xdg");
settings.beginGroup("General");
settings.setValue("checkBox1",ui->checkBox1->isChecked());
settings.endGroup();
}
您应该在QSettings页面上阅读有关"scope"和setPath()
的更多信息。
然后,在MainWindow::MainWindow()
函数,我有这样的:
QCoreApplication::setOrganizationName("Example Company");
QCoreApplication::setOrganizationDomain("example.com");
QCoreApplication::setApplicationName("Example Product");
ui->setupUi(this);
this->readSettings();
注意,在设置了ui
变量之后,只能设置readSettings()
。通过像我一样使用QCoreApplication
类,我不必一直重复声明我使用的设置。
然后,我取了MainWindow
并在其上添加了checkBox1
和updateButton
,并将updateButton clicked()
插槽代码设置为:
this->writeSettings();
现在,当窗口加载时,在绘制UI之后,它读取设置,将复选框的值设置为单击更新按钮时设置的值
相关文章:
- 在C++中共享键值对的最佳方式
- 使用无序映射在STL中存储键值对
- c++同一个键的多个键/值对
- C++中的键值对:<val1, val2> 键<frequency>与值一样
- 在 std::unordered_map 中插入新的键/值对会导致"out of range"异常
- 读取数组中每个对象的所有键值对
- 这C++ unordered_map怎么有四个值?我以为这是一个键值对
- 使用 k 个键值对为零的存储桶初始化 c++14 unordered_map
- 从配置文件qsetting中删除键/值对
- 如何使用卡萨布兰卡在现有的web::json::value对象中附加新的键值对?
- 是否可以创建字符串和原子<int>键值对的unordered_map?
- 检索16k键值对的最快方法
- 将键值对文件读入 std::map
- 为什么用Spirit解析一个空行会在映射中产生一个空的键值对
- 从unordered_map C++中删除键/值对
- 磁盘上由文件备份的键值对的列表/映射
- 我可以将键值对的内存映射文件重新解释为映射以便对它们进行排序吗?
- 在文件中存储由分隔符分隔的大量整数的键值对的最有效方法
- Qt/ c++写/读键值对文件
- 从文件中读取键值对并忽略#注释行