Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QExtensionManager类提供扩展的管理设施, Qt Designer中。More...
继承QObject和QAbstractExtensionManager。
该QExtensionManager类提供扩展的管理设施, Qt Designer中。
In Qt Designer未创建的扩展,直到你需要它们。出于这个原因,实施一个扩展时,您还必须创建一个QExtensionFactory,即一个类,它能够让你的扩展的一个实例,并使用它注册Qt Designer的扩展管理器。
的延伸工厂登记通常在做QDesignerCustomWidgetInterface.initialize( )函数:
void MyPlugin.initialize(QDesignerFormEditorInterface *formEditor) { if (initialized) return; QExtensionManager *manager = formEditor->extensionManager(); Q_ASSERT(manager != 0); manager->registerExtensions(new MyExtensionFactory(manager), Q_TYPEID(QDesignerTaskMenuExtension)); initialized = true; }
该QExtensionManager不打算直接实例化。你可以检索界面Qt Designer使用的扩展管理器QDesignerFormEditorInterface.extensionManager()函数。一个指向Qt Designer目前的QDesignerFormEditorInterface对象(formEditor在上面的例子)是由提供QDesignerCustomWidgetInterface.initialize( )函数的参数。当实现一个自定义的widget插件,你必须在子类QDesignerCustomWidgetInterface暴露你的插件Qt Designer。
然后,当一个扩展是必需的,Qt Designer的扩展管理器将通过其所有已注册的工厂运行要求QExtensionFactory.createExtension( )对每一直到第一个能够创建请求的扩展选定对象,被发现。这家工厂将使这个扩展的实例。
有扩展的四个可用的类型Qt Designer:QDesignerContainerExtension,QDesignerMemberSheetExtension,QDesignerPropertySheetExtension和QDesignerTaskMenuExtension。Qt Designer的行为是相同的同一个容器中,构件表,属性表或任务菜单所需的分机是否相关联。
对于使用QExtensionManager类的完整示例,请参见Task Menu Extension example。该示例显示了如何创建一个自定义的widget插件Qt Designer中,以及如何使用QDesignerTaskMenuExtension类的自定义项添加到Qt Designer的任务菜单。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个扩展管理器给定的parent。
从重新实现QAbstractExtensionManager.extension( ) 。
返回由指定的扩展名iid,对于给定的object。
从重新实现QAbstractExtensionManager.registerExtensions( ) 。
注册由给定指定的扩展名factory和扩展标识符iid。
从重新实现QAbstractExtensionManager.unregisterExtensions( ) 。
注销由给定指定的扩展名factory和扩展标识符iid。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |