QT QMessageBox默认按钮?

Alo*_*ius 3 qt

我有一个QMessageBoxwith YesNo替代项。

QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, "New update", "There is a new update, do you want to update now?", QMessageBox::Yes|QMessageBox::No);

if (reply == QMessageBox::Yes) {

} else {

}
Run Code Online (Sandbox Code Playgroud)

但是由于某种原因,默认答案始终是No。如何将默认按钮设置为Yes

我试过了:

reply.setDefaultButton(QMessageBox::Yes);
Run Code Online (Sandbox Code Playgroud)

但是不能使它起作用。

Zla*_*mir 6

QMessageBox::question可以传递一个默认值为的额外参数NoButton,并且您没有使用该参数,请参见此处的文档,因此您的代码将变为:

reply = QMessageBox::question(this, "New update", "There is a new update, do you want to update now?", QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
Run Code Online (Sandbox Code Playgroud)