- class QWidgetAction#
QWidgetAction
类通过一个用于将自定义小部件插入基于行动容器(如工具栏)的接口扩展了QAction。 更多…概述#
方法#
def
__init__()
def
createdWidgets()
def
defaultWidget()
def
releaseWidget()
def
requestWidget()
虚函数#
def
createWidget()
def
deleteWidget()
注意
本文档可能包含自动从 C++ 转换为 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建票证来让我们知道。
详细描述#
应用程序中的大多数操作都表示为菜单中的项目或工具栏中的按钮。然而,有时需要更复杂的控件。例如,在文字处理程序中实现缩放操作可能会使用
QComboBox
,在QToolBar
中显示不同的缩放级别。QToolBar
提供了insertWidget()
作为插入单个控件的便利函数。但是,如果您想在一个或多个容器中实现使用自定义控件进行可视化的操作,则必须派生QWidgetAction
。例如,如果将
QWidgetAction
添加到QToolBar
中,则会调用createWidget()
。该函数的重新实现应该创建一个具有指定父对象的新自定义控件。如果操作从容器控件中删除,则使用先前创建的自定义控件作为参数调用
deleteWidget()
。默认实现隐藏控件并使用 QObject::deleteLater() 删除它。如果您只有一个自定义控件,则可以使用
setDefaultWidget()
将它设置为默认控件。如果操作添加到QToolBar
或支持QWidgetAction
的通用动作容器中,则将使用该控件。如果将只有一个默认控件的QWidgetAction
同时添加到两个工具栏中,那么在第一个添加了该动作的工具栏中显示默认控件。QWidgetAction
接管默认控件的所有权。请注意,激活操作的责任在于控件本身,例如通过重新实现鼠标事件处理程序并调用 QAction::trigger()。
macOS:如果您在 macOS 应用程序菜单栏中的菜单中添加控件,控件将被添加并正常工作,但有一些限制
使用
parent
构建操作。每当将操作添加到支持自定义小部件的容器小部件时,都会调用此函数。如果您不希望指定
parent
小部件中使用的自定义小部件作为操作的表示,则应返回 0。- createdWidgets()#
- 返回类型:
. QWidget 列表
返回操作加入的 GUI控件使用
createWidget()
的列表。返回默认小部件。
每当操作被从使用自定义
widget
显示的操作的容器小部件中移除时,都会调用此函数。默认实现会隐藏widget
并将其计划删除 using QObject::deleteLater()。释放指定的小部件
widget
。支持操作的容器小部件在该操作被移除时会调用此函数。
返回一个表示操作的控件,其父控件为给定的
parent
。支持动作的容器控件可以调用此函数来请求动作的可视表示控件。
将
widget
设置为默认控件。所有权将转让给QWidgetAction
。除非子类重新实现了createWidget()
方法来返回一个新控件,否则在通过requestWidget()
请求控件时使用默认控件。