我的main.qml中有以下代码
MessageDialog {
id: exitDialog
title: "Quit"
text: "Save before quitting?"
icon: StandardIcon.Question
standardButtons: StandardButton.Save| StandardButton.Discard | StandardButton.Cancel
onAccepted: {
...
}
onDiscard: Qt.quit()
}
但是问题是我的按钮显示为关闭而没有保存取消和最后一次保存!默认按钮设置为关闭而不保存。我希望代码中的按钮顺序得以维护,并且还默认将其设置为保存。有人遇到这样的问题吗?有什么建议 ?
我已经看到了这个答案
How to set the default button of a MessageDialog in QML?
但是我该如何为standardButtons做呢?
最佳答案
只是给一个想法。 http://doc.qt.io/qt-5/qmessagebox.html
按钮的显示顺序取决于平台。例如,在Windows上,“保存”显示在“取消”的左侧,而在Mac OS上,顺序相反。
将您的标准按钮之一标记为默认按钮。
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save);
int ret = msgBox.exec();