如何在Qt中保存设置

时间:2016-05-20 14:47:46

标签: windows qt save settings restore

我为应用程序编写了一些代码 我想保存此设置像隐藏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();
}

1 个答案:

答案 0 :(得分:1)

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

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

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