如何存储在 Qt 设置中?

Posted

技术标签:

【中文标题】如何存储在 Qt 设置中?【英文标题】:How to store in Qt Settings? 【发布时间】:2012-03-09 09:00:59 【问题描述】:

我目前正在创建一个带有“不再显示”复选框的对话框。单击复选框并关闭对话框(按下确定按钮)时,应用程序将在QSettings 中存储该对话框之前已打开的信息。

对Qt设置不熟悉,看API也不知道用哪个函数。

谁能指出我正确的方向?谢谢!

顺便说一句,我确实尝试了QErrorMessage,但消息框不断弹出,所以我放弃了。

void MessageBox::on_checkBox_stateChanged(int arg1)

    if(ui->checkBox->stateChanged(arg1) && ui->pushButton->clicked(true))
    //I believe this is right.
    
       writeSettings();
    


void MessageBox::writeSettings()

    QSettings settings;
//...help; Question: Should I write in main.cpp or in the .h?


void MessageBox::readSettings()

//...help

【问题讨论】:

看看这个问题:***.com/q/3597900/2796,你应该找到你正在寻找的关于QSettings使用的答案。 @Jérôme 谢谢! :) 我会保留那个标签作为参考! 【参考方案1】:

要以这种形式使用 QSettings 构造函数,您必须为您的应用程序设置组织和应用程序名称,如果您在那里创建它,可能在 main.cpp 中:

QApplication a(argc, argv);
a.setOrganizationName("MySoft");
a.setApplicationName("Star Runner");

然后在您的 writeSettings() 中执行:

QSettings settings;
settings.setValue("showErrorMessages", ui->checkBox->isChecked());

在 readSettings() 中

QSettings settings;
bool showErrorMessages = settings.value("showErrorMessages", true).toBool()

这一切都在docs 中,IMO 解释得很清楚。

【讨论】:

真的,哇,我想知道设置值的目的是什么以及如何使用它。现在对一个月前开始使用 qt 的人提出一个简短的问题,哈哈,你有 a.setOrganizationName()a.setAplicationName()。这会覆盖当前名称,即MainWidow::setWindowTitle("example")

以上是关于如何存储在 Qt 设置中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Qt/C++ 创建/读取/写入文件并使用程序在本地存储设置

QT如何设置可变的全局变量

使用Qt.labs.settings来存储应用的设置

Qt配置信息设置(QSettings在不同平台下的使用路径)

如何在Qt中强制设置项目选择

如何在 Qt 中使用彩色字符串设置窗口标题?