PySide6.QtDesigner.QExtensionManager¶
- class QExtensionManager¶
QExtensionManager
类为 Qt Widgets Designer 提供了扩展管理功能。更多…概要¶
方法¶
def
__init__()
注意
本文档可能包含从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 中有四种可用的扩展类型:
QDesignerContainerExtension
、QDesignerMemberSheetExtension
、QDesignerPropertySheetExtension
和QDesignerTaskMenuExtension
。无论请求的扩展是与容器、成员表、属性表还是任务菜单相关联,Qt Widgets Designer 的行为都是相同的。有关使用
QExtensionManager
类的完整示例,请参见任务菜单扩展示例。该示例展示了如何为Qt Designer创建自定义小部件插件,以及如何使用QDesignerTaskMenuExtension
类将自定义项添加到Qt Widgets Designer的任务菜单中。另请参阅
QExtensionFactory
QAbstractExtensionManager
使用给定的
parent
构建一个扩展管理器。