在我的GUI应用程序中,我的主窗口中有一些标签,标签的可见性由对话框中的复选框控制,该对话框在按下按钮(设置)时打开。现在,一切正常,即如果我打开设置对话框,我可以选中或取消选中复选框;因此标签也设置为可见或不可见。
mysettingsdialog.cpp
void mysettingsdialog::onclick(bool checked) //by AJ kpi conf
{
if(myCheckBox->isChecked()==true)
{
emit setlabelvisible();
}
else
{
emit setlabelinvisible();
}
}
mainwindow.cpp
MySettingsDialog* myset=new MySettingsDialog(this);
connect(myset,SIGNAL(setlabelvisible()),this,SLOT(enable1()));
connect(myset,SIGNAL(setlabelinvisible()),this,SLOT(disable1()));
void MainWindow::enable1()
{
ui->label->setVisible(true);
qDebug()<<"VISIBLE label";
}
void MainWindow::disable1()
{
ui->label->setVisible(false);
qDebug()<<"INVISIBLE label";
}
现在的问题是,每次我的应用程序重新启动时,它都不会保留复选框的先前状态。所以我想将复选框的状态保存在变量中并将其写入文件,因此每当我的应用程序启动时,它都会读取文件并相应地设置复选框的状态。
我的问题是,如何存储&#34;州&#34;变量中的复选框并将其写入文件。并再次使用相同的设置复选框的状态???
我的意思是从文件中读取/写入QLabel和QLineEdits的值很容易,但我对如何使用复选框感到困惑。
答案 0 :(得分:3)
isChecked()
来查询是否选中了复选框。否则,如果使用三态复选框,则可以调用checkState()
将状态作为枚举返回(请参阅编辑)。加载设置时,请相应地为每个复选框指定状态。
您可以使用QSettings
管理设置并将其另存为 ini 文件。
只需提一下三态复选框的选项。来自the document:
QCheckBox
可选择提供第三个州来表示“无变化”。 只要您需要为用户提供选项,这非常有用 既不检查也不取消选中复选框。如果你需要这第三个 状态,使用setTristate()
启用它,并使用checkState()
查询 当前的切换状态。