本页内容

Action QML Type

抽象用户界面操作。更多...

Import Statement: import QtQuick.Controls
Inherits:

QtObject

属性

信号

方法

详细说明

操作(Action)代表一种抽象的用户界面操作,可设置快捷键,并可分配给菜单项和工具栏按钮。

操作可能包含text 、icon 和shortcut 。操作通常由用户通过菜单项、工具栏按钮或键盘快捷键triggered 。checkable 操作在被触发时会切换其checked 状态。

Action {
    id: copyAction
    text: qsTr("&Copy")
    icon.name: "edit-copy"
    shortcut: StandardKey.Copy
    onTriggered: window.activeFocusItem.copy()
}

操作通常用于实现可通过菜单项、工具栏按钮和键盘快捷键调用的应用程序命令。由于用户期望无论使用何种用户界面,命令都能以相同的方式执行,因此将命令表示为可共享的操作非常有用。

操作还可用于分离逻辑与视觉呈现。例如,在.ui.qml 文件中声明按钮和菜单项时,可以在其他地方声明操作,并从外部进行分配。

ToolButton {
    id: toolButton
    action: copyAction
}

当操作与按钮和菜单项配对时,enabled 、checkable 和checked 这三个状态会自动同步。 例如,在文字处理软件中,如果用户单击工具栏上的“加粗”按钮,“加粗”菜单项将自动被选中。默认情况下,按钮和菜单项从该操作获取其text 和icon 属性。可以通过在控件上直接指定text 或icon ,为特定控件覆盖该操作专用的text 或icon 属性。

MenuItem {
    id: menuItem
    action: copyAction
    text: qsTr("&Copy selected Text")
}

由于 Action 表示用户界面操作,因此应将其分配给MenuItem 、ToolButton 或任何继承自AbstractButton 的控件。对于键盘快捷键,更简单的Shortcut 类型更为合适。

另请参阅 MenuItem 、ToolButton 和Shortcut 。

属性文档

checkable : bool

该属性用于指定该操作是否可选中。默认值为false 。

可选中操作在触发时会在选中(开启)和未选中(关闭)状态之间切换。

另请参阅 checked 。

checked : bool

该属性表示该操作是否已被选中。

另请参阅 checkable 。

enabled : bool

该属性用于指定该操作是否已启用。默认值为true 。

icon group

icon.cache : bool

icon.color : color

icon.height : int

icon.name : string

icon.source : url

icon.width : int

姓名描述
名称此属性用于指定要使用的图标名称。

图标将从平台主题中加载。如果在主题中找到了该图标,则始终使用该图标;即使同时设置了icon.source 也是如此。如果未找到该图标,则改用icon.source 。

有关主题图标的更多信息,请参阅QIcon::fromTheme()。

source此属性用于指定要使用的图标名称。

该图标将作为普通图像加载。

如果设置了icon.name 且其指向一个有效的主题图标,则系统将始终使用该图标,而非此属性。

width此属性用于指定图标的宽度。

图标的宽度绝不会超过此值,但在必要时会缩小。

height此属性用于指定图标的高度。

图标的高度绝不会超过此值,但在必要时会缩小。

颜色此属性用于指定图标的颜色。

图标将采用指定的颜色进行着色,除非该颜色被设置为"transparent" 。

缓存此属性指定是否应将图标缓存。

默认值为 true。

有关更多信息,请参阅cache 。

该属性自QtQuick.Controls 2.13 版本起引入。

shortcut : keysequence

该属性存储操作的快捷键。键序列可以设置为standard keyboard shortcuts 中的任意一个(例如,StandardKey.Copy ),也可以通过一个字符串来描述,该字符串包含触发该快捷键所需的最多四个按键的序列。

Action {
    shortcut: "Ctrl+E,Ctrl+W"
    onTriggered: edit.wrapMode = TextEdit.Wrap
}

text : string

该属性包含对该操作的文本描述。

Signal 文档

toggled(QtObject source)

当操作被切换时,会触发此信号。source 参数用于标识触发操作切换的对象。

例如,如果该操作被分配给一个菜单项和一个工具栏按钮,则当控件被切换、快捷键被触发,或者直接调用toggle() 时,该操作会被切换。

注意: 相应的处理程序 是onToggled 。

triggered(QtObject source)

当操作被触发时,会发出此信号。source 参数用于标识触发该操作的对象。

例如,如果该操作被分配给一个菜单项和一个工具栏按钮,则当点击该控件、激活快捷键或直接调用trigger() 时,该操作会被触发。

注意: 相应的处理程序 是onTriggered 。

方法文档

void toggle(QtObject source)

切换该操作的状态;若已启用,则触发toggled()事件,并可选地定义source 对象。

void trigger(QtObject source)

触发该操作,并在启用时触发triggered()事件,同时可选地定义一个source 对象。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.