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