如何在 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
块之后调用它吗?
我为一个应用程序写了一些代码 我想保存此设置,例如隐藏 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
块之后调用它吗?