如何在 QML 中设置 MessageDialog 的默认按钮?

How to set the default button of a MessageDialog in QML?

默认按钮是"Yes",但我想将按钮"No"设置为默认按钮。

怎么做?

我看不出有什么方法可以通过当前的 MessageDialog API 来实现这一点,但我也认为这在很大程度上是特定于平台的,这就是它被隐藏的原因。

不过您可以创建自己的对话框:

import QtQuick 2.3
import QtQuick.Window 2.0
import QtQuick.Controls 1.2
import QtQuick.Dialogs 1.2

Window {
    width: 500
    height: 500
    visible: true

    Dialog {
        id: dialog
        visible: true

        contentItem: FocusScope {
            Row {
                anchors.bottom: parent.bottom
                anchors.right: parent.right

                Button {
                    text: "No"
                    isDefault: true
                    focus: true
                    onClicked: dialog.close()
                }
                Button {
                    text: "Yes"
                }
            }
        }
    }
}