【问题标题】:How To Save Settings in Qt如何在 Qt 中保存设置
【发布时间】:2016-09-17 21:38:21
【问题描述】:

我为应用程序编写了一些代码 我想保存此设置,例如隐藏 lineEdit 等... 并且当重新打开程序时将加载最后一个设置以及用户编辑设置时 保存更新的设置

我必须做什么?

注意:我使用了 Qsettings,但设置未保存! 如果可能的话,一个人为我写一个示例代码来保存组合框的当前索引

QSettings settings("Mobtakeran Fanavri KabooK","Kabook Physiothrapy");

Secretary::Secretary(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Secretary)
{
    ui->setupUi(this);
    ui->comboBox->setCurrentIndex(settings.value("comboBox").toInt());
}
Secretary::~Secretary()
{
    QCoreApplication::setOrganizationName("Mobtakeran Fanavri KabooK");
    QCoreApplication::setOrganizationName("WWW.M4RZB4Ni.IR");
    QCoreApplication::setApplicationName("Kabook Physiothrapy");

    delete ui;
}
void Secretary::on_comboBox_currentIndexChanged(int index)
{
    settings.beginGroup("comboBox");
    if(ui->comboBox->currentIndex()==2) {
        ui->pushButton_3->setDisabled(true);
    } else if(ui->comboBox->currentIndex()==1) {
        ui->pushButton_3->hide();
        settings.setValue("comboBox",ui->comboBox->currentIndex());
    } else if(ui->comboBox->currentIndex()==0) {
        if(ui->lineEdit_56->text()==NULL) {
           ui->pushButton_8->setDisabled(true);
        }
    }
    settings.endGroup();
}

【问题讨论】:

  • 您需要使用settings.value 方法来加载值。你没有这样做。不清楚,你有什么问题。
  • 我用过这个!看代码! ui->comboBox->setCurrentIndex(settings.value("comboBox").toInt());

标签: windows qt save settings restore


【解决方案1】:

当您将设置保存在 Secretary::on_comboBox_currentIndexChanged 中时,您正在调用 settings.beginGroup("comboBox"),然后您设置值 settings.setValue("comboBox",ui->comboBox->currentIndex())

根据documentation,这将设置设置"comboBox/comboBox"的值,这意味着您应该使用settings.value("comboBox/comboBox").toInt()读取它的值。

另外请注意,您仅在currentIndex 更改为2 的情况下才调用settings.setValue,您确定要这样做吗?你不是要在你所有的if/else 块之后调用它吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-08
    • 2011-05-09
    • 2015-11-04
    • 2011-01-03
    • 1970-01-01
    • 2011-09-29
    • 2014-11-19
    • 1970-01-01
    相关资源
    最近更新 更多