У меня есть QDialog, и я много читаю о различиях show(), exec() и open(). К сожалению, я так и не нашел решение для изменения модальности диалога во время выполнения. У меня есть приложение, и оттуда запускается мой QDialog. У меня есть кнопка переключения в этом диалоговом окне, и при нажатии на нее QDialog должен изменить модальность, чтобы можно было взаимодействовать с приложением - но это не должно происходить все время - только при проверке кнопки переключения.Как изменить модальность QDialog во время выполнения?
Есть ли возможность? Я не мог решить проблему с установкой setModal (true/false), это просто позволяет мне запустить ее модально, переключить кнопку и установить ее в немодальную, но тогда я не могу вернуться к модальному.
Вот некоторые код:
Начиная диалог:
из главного окна:
_dialog = new ToggleModalDialog(this, id, this);
_dialog->setWindowModality(Qt::ApplicationModal);
_dialog->open();
и здесь в переключаемых слот в ToggleModalDialog
void ToggleModalDialog::changeModality(bool checkState)
{
if(checkState)
{
this->setWindowModality(Qt::NonModal);
ui->changeModalityButton->setChecked(true);
this->setModal(false);
}
else
{
this->setWindowModality(Qt::ApplicationModal);
ui->changeModalityButton->setChecked(true);
}
Спасибо заранее!