如何在 Qt 中保存设置

How To Save Settings in Qt

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

当您在 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 块之后调用它吗?