Доброго время суток.
Встала задача: в методе ожидать, до тех пор пока не нажата клавиша.
К примеру есть форма на которой задают вопросы:
Текст вопроса
Ответ на вопрос.
кнопка которая говорит следующий вопрос и подтверждает текущий.
Есть метод, который возвращает ответ на вопрос.
QString askQuest() {
//Ждём пока не нажада кнопка далее и только после этого возвращаем в методе значение
return answer;
}
можно конечно сделать типа
while (btnClicked <> true);
Но циклы while не есть тон хорошего программирования.
Видел пример с QMessageBox, решающей мою проблему
QMessageBox msgBox;
msgBox.setText(tr("Желаете сохранить сделанные\nвами изменения?"));
msgBox.setWindowTitle("Закрытие редактора доменов");
msgBox.setIcon(QMessageBox::Warning);
QPushButton *btnYes = msgBox.addButton(tr("Да"), QMessageBox::ActionRole);
QPushButton *btnNo = msgBox.addButton(tr("Нет"), QMessageBox::ActionRole);
QPushButton *btnCan = msgBox.addButton(tr("Отмена"), QMessageBox::ActionRole);
msgBox.exec();
if (msgBox.clickedButton() == btnYes) {
on_acceptChange_clicked();
willChange = false;
return true;
} else if (msgBox.clickedButton() == btnNo) {
willChange = false;
return true;
} else if (msgBox.clickedButton() == btnCan) {
return false;
}
return false;
типа условие будет выполнятся только в том случае, если нажали кнопку. Посути мне нужно такое же на форме сделать.