我的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();

07-28 02:12
查看更多