PySide6.QtGui.QAction

class QAction

QAction 类提供了一个抽象,用于可以添加到不同用户界面组件的用户命令。更多

PySide6.QtGui.QAction 的继承图

继承者: QWidgetAction

概要

属性

方法

插槽

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

在应用程序中,许多常用命令可以通过菜单、工具栏按钮和键盘快捷键调用。由于用户期望无论使用哪种用户界面,每个命令都以相同的方式执行,因此将每个命令表示为动作是有用的。

可以将操作添加到用户界面元素(如菜单和工具栏)中,并自动保持用户界面的同步。例如,在文字处理软件中,如果用户按下粗体工具栏按钮,粗体菜单项将自动被选中。

一个 QAction 可能包含一个图标、描述性文本、图标文本、键盘快捷键、状态文本、“这是什么?”文本和工具提示。所有属性都可以通过 setIcon()setText()setIconText()setShortcut()setStatusTip()setWhatsThis()setToolTip() 独立设置。图标和文本作为两个最重要的属性,也可以在构造函数中设置。可以通过 setFont() 设置单独的字体,例如菜单在将操作显示为菜单项时会尊重此设置。

我们建议将操作创建为它们所在窗口的子项。在大多数情况下,操作将是应用程序主窗口的子项。

小部件应用程序中的QAction

一旦创建了一个QAction,它应该被添加到相关的菜单和工具栏中,然后连接到将执行操作的槽。

使用QWidget::addAction()或QGraphicsWidget::addAction()将操作添加到小部件中。请注意,操作必须先添加到小部件中才能使用。当快捷键应为全局时(即Qt::ApplicationShortcut作为Qt::ShortcutContext),也是如此。

动作可以被创建为独立的对象。但它们也可以在菜单的构建过程中创建。QMenu类包含了一些方便的函数,用于创建适合用作菜单项的动作。

另请参阅

QMenuQToolBar

class MenuRole

此枚举描述了如何在macOS上将操作移动到应用程序菜单中。

常量

描述

QAction.NoRole

此操作不应放入应用程序菜单中

QAction.TextHeuristicRole

此操作应根据操作文本放置在应用程序菜单中,如QMenuBar文档中所述。

QAction.ApplicationSpecificRole

此操作应放置在应用程序菜单中,并具有特定于应用程序的角色

QAction.AboutQtRole

此操作处理“关于 Qt”菜单项。

QAction.AboutRole

此操作应放置在应用程序菜单中的“关于”菜单项位置。菜单项的文本将设置为“关于 <应用程序名称>”。应用程序名称从应用程序包中的Info.plist文件中获取(参见Qt for macOS - 部署)。

QAction.PreferencesRole

此操作应放置在应用程序菜单中的“首选项…”菜单项所在的位置。

QAction.QuitRole

此操作应放置在应用程序菜单中的退出菜单项所在的位置。

设置此值仅对菜单栏中的直接菜单项有效,而不对这些菜单的子菜单有效。例如,如果您的菜单栏中有“文件”菜单,并且“文件”菜单有一个子菜单,那么为该子菜单中的操作设置MenuRole将无效。它们永远不会被移动。

class Priority

此枚举定义了用户界面中操作的优先级。

常量

描述

QAction.LowPriority

该操作在用户界面中不应优先考虑。

QAction.NormalPriority

QAction.HighPriority

该操作应在用户界面中优先处理。

另请参阅

priority

在版本4.6中添加。

class ActionEvent

此枚举类型在调用activate()时使用

常量

描述

QAction.Trigger

这将导致triggered()信号被发出。

QAction.Hover

这将导致hovered()信号被发出。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property autoRepeatᅟ: bool

此属性表示操作是否可以自动重复。

如果为true,当键盘快捷键组合被按住时,动作将自动重复,前提是系统启用了键盘自动重复功能。默认值为true。

Access functions:
property checkableᅟ: bool

此属性表示操作是否为可检查的操作。

可检查的操作是具有开/关状态的操作。例如,在文字处理器中,粗体工具栏按钮可能是开或关的。不是切换操作的操作是命令操作;命令操作只是被执行,例如文件保存。默认情况下,此属性为false

在某些情况下,一个切换操作的状态应取决于其他操作的状态。例如,“左对齐”、“居中”和“右对齐”切换操作是互斥的。要实现互斥切换,请将相关的切换操作添加到具有QActionGroup::exclusive属性设置为true的QActionGroup中。

另请参阅

setChecked()

Access functions:
property checkedᅟ: bool

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

只有可检查的操作才能被检查。默认情况下,这是false(操作未选中)。

注意

此属性的通知信号是 toggled()。由于切换 QAction 会改变其状态,它还会发出 changed() 信号。

另请参阅

checkable toggled()

Access functions:
property enabledᅟ: bool

此属性表示操作是否启用。

禁用的操作无法被用户选择。它们不会从菜单或工具栏中消失,但会以一种表明它们不可用的方式显示。例如,它们可能仅使用灰色阴影显示。

这是什么?即使操作被禁用,只要设置了whatsThis属性,仍然可以提供帮助。

当一个动作被添加到所有小部件(使用QWidget::addAction())都被禁用或不可见时,该动作将被禁用。当一个动作被禁用时,无法通过其快捷键触发它。

默认情况下,此属性为 true(操作已启用)。

另请参阅

text

Access functions:
property fontᅟ: QFont

此属性保存操作的字体。

font 属性用于渲染设置在 QAction 上的文本。字体可以被视为一个提示,因为在某些情况下,基于应用程序和样式,可能不会参考它。

默认情况下,此属性包含应用程序的默认字体。

另请参阅

setText()

Access functions:
property iconᅟ: QIcon

此属性保存操作的图标。

在工具栏中,图标用作工具按钮图标;在菜单中,只要iconVisibleInMenu返回true,它就会显示在菜单文本的左侧。

没有默认图标。

如果传递了一个空图标(isNull())到这个函数中,操作的图标将被清除。

Access functions:
property iconTextᅟ: str

此属性保存操作的描述性图标文本。

如果 QToolBar::toolButtonStyle 设置为允许显示文本的值,则此属性中定义的文本将作为标签显示在相关的工具按钮上。

如果操作未使用setText()setToolTip()定义,它也将作为菜单和工具提示中的默认文本,并且如果未使用setIcon()定义图标,它也将用于工具栏按钮。

如果未明确设置图标文本,则将使用操作的标准文本作为图标文本。

默认情况下,此属性包含一个空字符串。

Access functions:
property iconVisibleInMenuᅟ: bool

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

此属性决定操作是否应在菜单中显示图标。

在某些应用程序中,工具栏中的操作带有图标可能是有意义的,但在菜单中则不然。如果为true,则图标(如果有效)会显示在菜单中,如果为false,则不会显示。

默认情况下,遵循是否为应用程序设置了Qt::AA_DontShowIconsInMenus属性。显式设置此属性会覆盖该属性的存在(或不存在)。

例如:

app = QApplication([])
app.setAttribute(Qt.AA_DontShowIconsInMenus) # Icons are no longer shown in menus
# ...
myAction = QAction()
# ...
myAction.setIcon(SomeIcon)
myAction.setIconVisibleInMenu(True) # Icon will be shown in menus for this action.

另请参阅

icon setAttribute()

Access functions:
property menuRoleᅟ: QAction.MenuRole

此属性保存操作的菜单角色。

这表示该操作在macOS应用程序菜单中的作用。默认情况下,所有操作都具有TextHeuristicRole,这意味着操作是根据其文本添加的(有关更多信息,请参见QMenuBar)。

在macOS中,菜单角色只能在将操作放入菜单栏之前更改(通常是在显示第一个应用程序窗口之前)。

Access functions:
property priorityᅟ: QAction.Priority

此属性保存操作在用户界面中的优先级。

此属性可以设置为指示操作在用户界面中的优先级。

例如,当工具栏设置为Qt::ToolButtonTextBesideIcon模式时,具有LowPriority的操作将不会显示文本标签。

Access functions:
property shortcutᅟ: QKeySequence

此属性保存操作的主要快捷键。

此属性的有效键码可以在Qt::Key和Qt::Modifier中找到。没有默认的快捷键。

Access functions:
property shortcutContextᅟ: Qt.ShortcutContext

此属性保存操作的快捷方式的上下文。

此属性的有效值可以在Qt::ShortcutContext中找到。默认值为Qt::WindowShortcut。

Access functions:
property shortcutVisibleInContextMenuᅟ: bool

此属性决定操作是否应在上下文菜单中显示快捷方式。

在某些应用程序中,在上下文菜单中设置带有快捷键的操作可能是有意义的。如果为真,当通过上下文菜单显示操作时,快捷键(如果有效)会显示出来;如果为假,则不会显示。

默认情况下,遵循是否为应用程序设置了Qt::AA_DontShowShortcutsInContextMenus属性。显式设置此属性将覆盖该属性。

另请参阅

shortcut setAttribute()

Access functions:
property statusTipᅟ: str

此属性保存操作的状态提示。

状态提示显示在操作的顶级父部件提供的所有状态栏上。

默认情况下,此属性包含一个空字符串。

Access functions:
property textᅟ: str

此属性保存操作的描述性文本。

如果将操作添加到菜单中,菜单选项将包括图标(如果有)、文本和快捷键(如果有)。如果未在构造函数中或通过使用setText()显式设置文本,则将使用操作的描述图标文本作为文本。没有默认文本。

某些UI元素,如菜单或按钮,可以在字符前使用‘&’自动为该字符创建助记符(快捷键)。例如,菜单中的“&File”将创建快捷键Alt+F,这将打开文件菜单。“E&xit”将为按钮创建快捷键Alt+X,或在菜单中允许通过按“x”导航到菜单项。(使用‘&&’显示实际的&符号)。小部件可能会消耗并在给定快捷键上执行操作。

另请参阅

iconText

Access functions:
property toolTipᅟ: str

此属性保存操作的工具提示。

此文本用于工具提示。如果未指定工具提示,则使用操作的文本。

默认情况下,此属性包含操作的文本。

Access functions:
property visibleᅟ: bool

此属性表示操作是否可见(例如在菜单和工具栏中)。

如果visible为true,则该操作可见(例如在菜单和工具栏中)并且用户可以选择;如果visible为false,则该操作不可见且用户无法选择。

不可见的操作不会变灰;它们根本不会出现。

默认情况下,此属性为 true(操作可见)。

Access functions:
property whatsThisᅟ: str

此属性保存操作的“这是什么?”帮助文本。

“这是什么?”文本用于提供操作的简要描述。文本可能包含富文本。没有默认的“这是什么?”文本。

另请参阅

QWhatsThis

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

使用parent构造一个动作。如果parent是一个动作组,该动作将自动插入到组中。

注意

自 Qt 5.7 起,parent 参数是可选的。

__init__(text[, parent=None])
Parameters:
  • 文本 – str

  • parentQObject

使用一些textparent构造一个动作。如果parent是一个动作组,该动作将自动插入到组中。

除非你分别使用setToolTip()setIconText()指定不同的文本,否则将使用text的简化版本(例如,“&Menu Option…”变为“Menu Option”)作为工具提示和图标文本。

另请参阅

text

__init__(icon, text[, parent=None])
Parameters:

构造一个带有icon和一些text以及parent的动作。如果parent是一个动作组,该动作将自动插入到组中。

除非你分别使用setToolTip()setIconText()指定不同的文本,否则将使用text的简化版本(例如,“&Menu Option…”变为“Menu Option”)作为工具提示和图标文本。

另请参阅

text icon

actionGroup()
Return type:

QActionGroup

返回此操作的操作组。如果没有操作组管理此操作,则将返回None

activate(event)
Parameters:

事件ActionEvent

发送与ActionEvent event相关的信号。

基于动作的小部件使用此API使QAction发出信号,同时也发出它们自己的信号。

associatedObjects()
Return type:

QObject的列表

返回此操作已添加到的对象列表。

另请参阅

addAction()

autoRepeat()
Return type:

布尔

另请参阅

setAutoRepeat()

属性 autoRepeatᅟ 的获取器。

changed()

当动作发生变化时,会发出此信号。如果您只对给定小部件中的动作感兴趣,可以监听带有 QEvent::ActionChanged 的 QWidget::actionEvent()。

另请参阅

actionEvent()

属性 iconᅟ 的通知信号。

checkableChanged(checkable)
Parameters:

checkable – 布尔值

属性 checkableᅟ 的通知信号。

data()
Return type:

对象

返回在setData中设置的用户数据。

另请参阅

setData()

enabledChanged(enabled)
Parameters:

enabled – 布尔值

属性 enabledᅟ 的通知信号。

font()
Return type:

QFont

另请参阅

setFont()

属性 fontᅟ 的获取器。

hover()

这是一个方便的插槽,用于调用 activate(Hover)。

hovered()

当用户高亮显示一个操作时,会发出此信号;例如,当用户将光标悬停在菜单选项、工具栏按钮上或按下操作的快捷键组合时。

另请参阅

activate()

icon()
Return type:

QIcon

另请参阅

setIcon()

属性 iconᅟ 的获取器。

iconText()
Return type:

字符串

另请参阅

setIconText()

属性 iconTextᅟ 的获取器。

isCheckable()
Return type:

布尔

属性 checkableᅟ 的获取器。

isChecked()
Return type:

布尔

属性 checkedᅟ 的获取器。

isEnabled()
Return type:

布尔

属性 enabledᅟ 的获取器。

isIconVisibleInMenu()
Return type:

布尔

属性 iconVisibleInMenuᅟ 的获取器。

isSeparator()
Return type:

布尔

如果此操作是分隔符操作,则返回true;否则返回false

另请参阅

setSeparator()

isShortcutVisibleInContextMenu()
Return type:

布尔

属性 shortcutVisibleInContextMenuᅟ 的获取器。

isVisible()
Return type:

布尔

属性 visibleᅟ 的获取器。

menu()
Return type:

QObject

menuRole()
Return type:

MenuRole

另请参阅

setMenuRole()

属性 menuRoleᅟ 的获取器。

priority()
Return type:

优先级

另请参阅

setPriority()

属性 priorityᅟ 的获取器。

resetEnabled()

属性 enabledᅟ 的重置功能。

setActionGroup(group)
Parameters:

QActionGroup

将此操作组设置为group。该操作将自动添加到组的操作列表中。

组内的操作将是互斥的。

setAutoRepeat(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

autoRepeat()

属性 autoRepeatᅟ 的设置器。

setCheckable(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isCheckable()

属性 checkableᅟ 的设置器。

setChecked(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isChecked()

属性 checkedᅟ 的设置器。

setData(var)
Parameters:

var – 对象

将操作的内部数据设置为给定的 data

另请参阅

data()

setDisabled(b)
Parameters:

b – 布尔值

这是一个用于enabled属性的便捷函数,对于信号-槽连接非常有用。如果b为真,则动作被禁用;否则,它被启用。

setEnabled(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isEnabled()

属性 enabledᅟ 的设置器。

setFont(font)
Parameters:

字体QFont

另请参阅

font()

属性 fontᅟ 的设置器。

setIcon(icon)
Parameters:

图标QIcon

另请参阅

icon()

属性 iconᅟ 的设置器。

setIconText(text)
Parameters:

文本 – str

另请参阅

iconText()

属性 iconTextᅟ 的设置器。

setIconVisibleInMenu(visible)
Parameters:

visible – 布尔值

另请参阅

isIconVisibleInMenu()

属性 iconVisibleInMenuᅟ 的设置器。

setMenu(menu)
Parameters:

菜单QObject

将此操作包含的菜单设置为指定的menu

另请参阅

menu()

setMenuRole(menuRole)
Parameters:

menuRoleMenuRole

另请参阅

menuRole()

属性 menuRoleᅟ 的设置器。

setPriority(priority)
Parameters:

优先级Priority

另请参阅

priority()

属性 priorityᅟ 的设置器。

setSeparator(b)
Parameters:

b – 布尔值

如果 b 为真,则此操作将被视为分隔符。

分隔符的表示方式取决于它被插入的小部件。在大多数情况下,对于分隔符操作,文本、子菜单和图标将被忽略。

另请参阅

isSeparator()

setShortcut(arg__1)
Parameters:

arg__1Key

setShortcut(shortcut)
Parameters:

快捷键QKeySequence

shortcut 设置为触发操作的唯一快捷键。

另请参阅

shortcut setShortcuts()

属性 shortcutᅟ 的设置器。

setShortcutContext(context)
Parameters:

上下文ShortcutContext

另请参阅

shortcutContext()

属性 shortcutContextᅟ 的设置器。

setShortcutVisibleInContextMenu(show)
Parameters:

显示 – 布尔值

属性 shortcutVisibleInContextMenuᅟ 的设置器。

setShortcuts(key)
Parameters:

keyStandardKey

根据key设置一个平台依赖的快捷键列表。调用此函数的结果将取决于当前运行的平台。请注意,此操作可以分配多个快捷键。如果只需要主快捷键,请使用setShortcut代替。

另请参阅

shortcuts() keyBindings()

setShortcuts(shortcuts)
Parameters:

快捷键 – .QKeySequence 列表

shortcuts设置为触发操作的快捷键列表。列表的第一个元素是主要快捷键。

另请参阅

shortcut setShortcut()

setStatusTip(statusTip)
Parameters:

statusTip – str

另请参阅

statusTip()

属性 statusTipᅟ 的设置器。

setText(text)
Parameters:

文本 – str

另请参阅

text()

属性 textᅟ 的设置器。

setToolTip(tip)
Parameters:

提示 – str

另请参阅

toolTip()

属性 toolTipᅟ 的设置器。

setVisible(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isVisible()

属性 visibleᅟ 的设置器。

setWhatsThis(what)
Parameters:

什么 – str

另请参阅

whatsThis()

属性 whatsThisᅟ 的设置器。

shortcut()
Return type:

QKeySequence

返回主快捷键。

另请参阅

setShortcuts()

属性 shortcutᅟ 的获取器。

shortcutContext()
Return type:

ShortcutContext

另请参阅

setShortcutContext()

属性 shortcutContextᅟ 的获取器。

shortcuts()
Return type:

QKeySequence的列表

返回快捷方式列表,主要快捷方式作为列表的第一个元素。

另请参阅

setShortcuts()

showStatusText([object=None])
Parameters:

对象QObject

Return type:

布尔

通过发送QStatusTipEvent来更新由object表示的UI的相关状态栏。如果事件已发送,则返回true,否则返回false

如果指定了一个空的小部件,事件将被发送到动作的父级。

另请参阅

statusTip

statusTip()
Return type:

字符串

另请参阅

setStatusTip()

属性 statusTipᅟ 的获取器。

text()
Return type:

字符串

另请参阅

setText()

属性 textᅟ 的获取器。

toggle()

这是一个用于checked属性的便捷函数。连接到它以将选中状态更改为其相反状态。

toggled(checked)
Parameters:

checked – 布尔值

每当可检查操作更改其isChecked()状态时,都会发出此信号。这可能是用户交互的结果,或者是因为调用了setChecked()。由于setChecked()更改了QAction,它除了发出toggled()信号外,还会发出changed()信号。

checked 如果操作被选中则为 true,如果操作未被选中则为 false。

另请参阅

activate() triggered() checked

属性 checkedᅟ 的通知信号。

toolTip()
Return type:

字符串

另请参阅

setToolTip()

属性 toolTipᅟ 的获取器。

trigger()

这是一个方便调用的插槽,用于调用activate(Trigger)。

triggered([checked=false])
Parameters:

checked – 布尔值

当用户激活一个动作时,会发出此信号;例如,当用户点击菜单选项、工具栏按钮或按下动作的快捷键组合时,或者当调用trigger()时。值得注意的是,当调用setChecked()toggle()时,不会发出此信号。

如果操作是可勾选的,checked 为 true 表示操作已勾选,为 false 表示操作未勾选。

另请参阅

activate() toggled() checked

visibleChanged()

属性 visibleᅟ 的通知信号。

whatsThis()
Return type:

字符串

另请参阅

setWhatsThis()

属性 whatsThisᅟ 的获取器。