Существуют различные способы использования QMessageBox .Вы можете использовать блокирование статических функций из QMessageBox и проверять ответ следующим образом:
QMessageBox::StandardButton reply = QMessageBox::question(this,"Title", "GAME Over-Do you want to play again?");
if(reply == QMessageBox::Yes)
{
//call your slot
//box();
qDebug() << " Yes clicked";
}
else
{
//Game over
qDebug() << "game over";
}
, но это будет блокировать выполнение вашего кода, пока пользователь не нажмет какую-либо кнопку в сообщенииbox.
Если вам нужно, чтобы ваш код выполнялся без ожидания ответа пользователя, вы можете использовать QMessageBox неблокирующим способом:
QMessageBox * msg = new QMessageBox(QMessageBox::Question, "Title", "GAME Over-Do you want to play again?", QMessageBox::Yes| QMessageBox::No, this);
connect(msg,SIGNAL(accepted()),this,SLOT(box()));
connect(msg,SIGNAL(rejected()),this,SLOT(gameover()));
msg->show();
qDebug() << "Not blocked";