В моем приложении с графическим интерфейсом у меня есть некоторые метки в главном окне, видимость меток контролируется с помощью флажков в диалоговом окне, которое открывается при нажатии кнопки (настройка). Теперь все работает нормально, то есть, если я открою диалоговое окно настроек, я могу установить или снять флажки; следовательно, метки также устанавливаются видимыми или невидимыми.
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";
}
Теперь проблема в том, что каждый раз, когда мое приложение перезапускается, оно не сохраняет прежнее состояние флажков. Поэтому я думал сохранить состояние флажка в переменной и записать его в файл, поэтому при каждом запуске приложения оно будет читать файл и соответственно устанавливать состояние флажка.
У меня вопрос, как я могу сохранить «состояние» флажка в переменной и записать его в файл. И снова использовать то же самое, чтобы установить состояние флажка ???
Я имею в виду, что чтение / запись значений из файла для QLabels и QLineEdits достаточно проста, но я озадачен тем, как сделать это с помощью флажка.
isChecked()
запросить, установлен ли флажок. В противном случае вы можете позвонить checkState()
вернуть состояние как enum, если вы используете флажок с тремя состояниями (см. редактирование).При загрузке настроек присвойте состояние каждому флажку соответственно.
Вы можете использовать QSettings
управлять настройками и сохранять их как ини файл.
Просто отметьте, что есть опция для флажка с тремя состояниями. От документ:
QCheckBox
опционально обеспечивает третье государство указать «без изменений».
Это полезно всякий раз, когда вам нужно дать пользователю возможность
не проверять и не снимать флажок. Если вам нужен этот третий
состояние, включите его сsetTristate()
, и использоватьcheckState()
запросить
текущее состояние переключения.