我在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做呢?
答案 0 :(得分:0)
只是想一个主意。 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();