PySide6.QtDesigner.QExtensionManager

class QExtensionManager

QExtensionManager 类为 Qt Widgets Designer 提供了扩展管理功能。更多

PySide6.QtDesigner.QExtensionManager 的继承图

概要

方法

注意

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

详细描述

警告

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

在Qt Widgets Designer中,扩展在需要时才会被创建。因此,在实现扩展时,您还必须创建一个QExtensionFactory,即一个能够创建扩展实例的类,并使用Qt Widgets Designer的扩展管理器进行注册。

扩展工厂的注册通常在initialize()函数中进行:

def initialize(self, formEditor):

    if initialized:
        return
    manager = formEditor.extensionManager()
    Q_ASSERT(manager != None)
    manager.registerExtensions(MyExtensionFactory(manager),
                                Q_TYPEID(QDesignerTaskMenuExtension))
    initialized = True

QExtensionManager 不打算直接实例化。您可以使用 extensionManager() 函数检索 Qt Widgets Designer 的扩展管理器接口。Qt Widgets Designer 当前的 QDesignerFormEditorInterface 对象的指针(在上面的示例中为 formEditor)由 initialize() 函数的参数提供。在实现自定义小部件插件时,您必须子类化 QDesignerCustomWidgetInterface 以将您的插件暴露给 Qt Widgets Designer。

然后,当需要扩展时,Qt Widgets Designer 的扩展管理器将遍历所有已注册的工厂,为每个工厂调用 createExtension(),直到找到第一个能够为所选对象创建所需扩展的工厂。然后,该工厂将创建扩展的实例。

Qt Widgets Designer 中有四种可用的扩展类型:QDesignerContainerExtensionQDesignerMemberSheetExtensionQDesignerPropertySheetExtensionQDesignerTaskMenuExtension。无论请求的扩展是与容器、成员表、属性表还是任务菜单相关联,Qt Widgets Designer 的行为都是相同的。

有关使用QExtensionManager类的完整示例,请参见任务菜单扩展示例。该示例展示了如何为Qt Designer创建自定义小部件插件,以及如何使用QDesignerTaskMenuExtension类将自定义项添加到Qt Widgets Designer的任务菜单中。

另请参阅

QExtensionFactory QAbstractExtensionManager

__init__([parent=None])
Parameters:

父对象QObject

使用给定的parent构建一个扩展管理器。