【问题标题】:QML: MessageDialog , the ordering of standardButtons and setting default buttonQML: MessageDialog ,标准按钮的排序和设置默认按钮
【发布时间】:2016-12-02 14:18:57
【问题描述】:

我的 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? 但是我该如何为标准按钮做呢?

【问题讨论】:

  • 这有什么更新吗?

标签: qt qml qt5 qt5.5


【解决方案1】:

只是提供一个想法。 http://doc.qt.io/qt-5/qmessagebox.html

按钮的显示顺序取决于平台。例如,在 Windows 上,Save 显示在 Cancel 的左侧,而在 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();

【讨论】:

  • 问题是关于 MessageDialog QML 而不是 C++ QMessageBox
  • 您已经回答了订购问题的一部分,但我也发现我没有太多控制权。但问题是,是否有可能覆盖它?
  • 不幸的是,正如@Mailerdaimon 所说,它不是 QML 代码。我已经知道 QT C++ 中的默认值
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 2019-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多