class QExtensionManager#

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

Inheritance diagram of PySide6.QtDesigner.QExtensionManager

摘要#

方法#

注意

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

详细描述#

警告

本节包含自动从 C++ 转换为 Python 的代码片段,可能存在错误。

Qt Designer 中,扩展只有在需要时才会创建。因此,在实现扩展时,您还必须创建一个 QExtensionFactory 类,即一个能够创建您的扩展实例的类,并使用 Qt 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 Designer 扩展管理器的一个接口。示例中提供的当前 QDesignerFormEditorInterface 对象指针(上述示例中为 formEditor)由 initialize() 函数的参数提供。在实现自定义小部件插件时,您必须对 QDesignerCustomWidgetInterface 进行子类化,以便将插件公开给 Qt Designer

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

Qt Designer 中有四种类型的扩展可用:QDesignerContainerExtensionQDesignerMemberSheetExtensionQDesignerPropertySheetExtensionQDesignerTaskMenuExtension。《Qt Designer》针对请求的扩展是与容器、成员表、属性表或任务菜单关联的行为相同。

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

另请参阅

QExtensionFactory QAbstractExtensionManager

__init__([parent=None])#
参数:

parentQObject

使用指定的 parent 构造一个扩展管理器。