Reputation: 9
I want to close the application when I click "Yes", but it closes even I press "No". What is wrong?
void secondwindow::on_pushButton_clicked()
{
QMessageBox msg;
msg.setWindowTitle("Quit");
msg.setText("Are you sure you want to quit?");
msg.setIcon(QMessageBox::Question);
msg.setStandardButtons(QMessageBox::Yes|QMessageBox::No);
msg.setStyleSheet(QString::fromUtf8("background-color: white;"));
if(msg.exec()==QMessageBox::Yes){
QApplication::quit();
}
}
Upvotes: 0
Views: 100
Reputation: 11
you can try like this:
void secondwindow::on_pushButton_clicked()
{
QMessageBox msg;
msg.setWindowTitle("Quit");
msg.setText("Are you sure you want to quit?");
msg.setIcon(QMessageBox::Question);
msg.setStandardButtons(QMessageBox::Yes|QMessageBox::No);
msg.setStyleSheet(QString::fromUtf8("background-color: white;"));
int answer=msg.exec();
switch (answer) {
case QMessageBox::Yes:
QApplication::quit();
break;
case QMessageBox::No:
//do something
break;
}
}
Upvotes: 0
Reputation: 38539
You can check msg.result()
code:
// if(msg.exec()==QMessageBox::Yes){
// QApplication::quit();
// }
msg.exec();
if (msg.result() == QMessageBox::Yes){
QApplication::quit();
}
Upvotes: 1