QML控件类型:DialogButtonBox

一、描述

对话框和消息框通常以符合该平台的界面指南的顺序显示按钮。不同的平台总是有不同顺序的对话按钮。 DialogButtonBox 允许开发人员向其中添加按钮,并且会自动为用户平台使用适当的顺序。

有几种使用 DialogButtonBox 的方法。一种方法是指定标准按钮(例如确定、取消、保存)并让按钮框设置按钮。

DialogButtonBox {
    standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel

    onAccepted: console.log("Ok clicked")
    onRejected: console.log("Cancel clicked")
}

或者,可以手动指定按钮及其角色:

DialogButtonBox {
    Button {
        text: qsTr("Save")
        DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole
    }
    Button {
        text: qsTr("Close")
        DialogButtonBox.buttonRole: DialogButtonBox.DestructiveRole
    }
}

还可以混合和匹配普通按钮和标准按钮。

当在按钮框中单击按钮时,会为实际按下的按钮发出 clicked() 信号。 此外,当按下具有相应角色的按钮时,会自动发出以下信号:

  • AcceptRoleYesRoleaccepted()
  • ApplyRoleapplied()
  • DiscardRolediscarded()
  • HelpRolehelpRequested()
  • RejectRoleNoRolerejected()
  • ResetRolereset()

二、属性成员

1、alignment : flags

按钮的对齐方式。可能的值:

  • undefined:按钮被调整大小以填充可用空间。
  • Qt.AlignLeft:左对齐。
  • Qt.AlignHCenter:水平居中。
  • Qt.AlignRight:右对齐。
  • Qt.AlignTop:顶部对齐。
  • Qt.AlignVCenter:垂直居中。
  • Qt.AlignBottom:底部对齐。

2、buttonLayout : enumeration

在排列按钮框中包含的按钮时要使用的按钮布局策略。默认值是特定于平台的。

  • DialogButtonBox.WinLayout:使用适用于 Windows 应用程序的策略。
  • DialogButtonBox.MacLayout:使用适用于 macOS 上的应用程序的策略。
  • DialogButtonBox.KdeLayout:使用适合 KDE 应用程序的策略。
  • DialogButtonBox.GnomeLayout:使用适用于 GNOME 上的应用程序的策略。
  • DialogButtonBox.AndroidLayout:使用适用于 Android 上的应用程序的策略。

3、delegate : Component

用于创建标准按钮的委托。

4、position : enumeration

按钮框的位置。

如果按钮框被指定为 ApplicationWindow Page 的页眉或页脚,则会自动设置相应的位置。

  • DialogButtonBox.Header:按钮框位于顶部。
  • DialogButtonBox.Footer:按钮框位于底部。默认值。

5、standardButtons : enumeration

按钮框使用的标准按钮的组合。这些按钮将按照用户平台的适当顺序放置。

DialogButtonBox {
    standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel

    onAccepted: console.log("Ok clicked")
    onRejected: console.log("Cancel clicked")
}
  • DialogBu​​ttonBox.Ok :使用 AcceptRole 定义的“确定”按钮。
  • DialogBu​​ttonBox.Open:使用 AcceptRole 定义的“打开”按钮。
  • DialogBu​​ttonBox.Save:使用 AcceptRole 定义的“保存”按钮。
  • DialogBu​​ttonBox.SaveAll:使用 AcceptRole 定义的“全部保存”按钮。
  • DialogBu​​ttonBox.Retry:使用 AcceptRole 定义的“重试”按钮。
  • DialogBu​​ttonBox.Ignore:使用 AcceptRole 定义的“忽略”按钮。
  • DialogBu​​ttonBox.Cancel:使用 RejectRole 定义的“取消”按钮。
  • DialogBu​​ttonBox.Close:使用 RejectRole 定义的“关闭”按钮。
  • DialogBu​​ttonBox.Abort:使用 RejectRole 定义的“中止”按钮。
  • DialogBu​​ttonBox.Discard:“放弃”或“不保存”按钮,取决于平台,使用 DestructiveRole 定义。
  • DialogBu​​ttonBox.Apply:使用 ApplyRole 定义的“应用”按钮。
  • DialogBu​​ttonBox.Reset:使用 ResetRole 定义的“重置”按钮。
  • DialogBu​​ttonBox.RestoreDefaults:使用 ResetRole 定义的“恢复默认值”按钮。
  • DialogBu​​ttonBox.Help:使用 HelpRole 定义的“帮助”按钮。
  • DialogBu​​ttonBox.Yes:使用 YesRole 定义的“是”按钮。
  • DialogBu​​ttonBox.YesToAll:使用 YesRole 定义的“全部同意”按钮。
  • DialogBu​​ttonBox.No:使用 NoRole 定义的“否”按钮。
  • DialogBu​​ttonBox.NoToAll:使用 NoRole 定义的“拒绝所有”按钮。
  • DialogBu​​ttonBox.NoButton:无效按钮。

三、附加属性成员

1、[read-only] DialogButtonBox.buttonBox : DialogButtonBox

管理此按钮的按钮框,如果该按钮不在按钮框中,则为 null。

2、DialogButtonBox.buttonRole : enumeration

持有按钮框中每个按钮的角色。

DialogButtonBox {
    Button {
        text: qsTr("Save")
        DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole
    }
    Button {
        text: qsTr("Close")
        DialogButtonBox.buttonRole: DialogButtonBox.DestructiveRole
    }
}
  • DialogButtonBox.InvalidRole:按钮无效。
  • DialogButtonBox.AcceptRole:接受。
  • DialogButtonBox.RejectRole:取消。
  • DialogButtonBox.DestructiveRole:取消更改。
  • DialogButtonBox.ActionRole:单击按钮会导致对话框中的元素发生变化。
  • DialogButtonBox.HelpRole:请求帮助。
  • DialogButtonBox.YesRole:“是”按钮。
  • DialogButtonBox.NoRole:“否”的按钮。
  • DialogButtonBox.ResetRole:该按钮将对话框的字段重置为默认值。
  • DialogButtonBox.ApplyRole:应用当前更改。

四、信号成员

1、accepted()

当单击使用 AcceptRole YesRole 定义的按钮时,会发出此信号。

2、applied()

当单击使用 ApplyRole 定义的按钮时,会发出此信号。

3、clicked(AbstractButton button)

当单击按钮框内的按钮时发出此信号。

4、discarded()

当单击使用 DiscardRole 定义的按钮时,会发出此信号。

5、helpRequested()

单击使用 HelpRole 定义的按钮时会发出此信号。

6、rejected()

当单击使用 RejectRole NoRole 定义的按钮时,将发出此信号。

7、reset()

当单击使用 ResetRole 定义的按钮时,会发出此信号。

五、函数成员

1、AbstractButton standardButton(StandardButton button)

返回指定的标准按钮,如果不存在则返回 null。

你可能感兴趣的:(#,QML控件类型,qml)