Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QExtensionFactory Class Reference
[QtDesigner module]

该QExtensionFactory类允许你创建一个工厂,是能够使Qt Designer中自定义扩展的实例。More...

继承QObjectQAbstractExtensionFactory

Methods


Detailed Description

该QExtensionFactory类允许你创建一个工厂,是能够使Qt Designer中自定义扩展的实例。

In Qt Designer未创建的扩展,直到你需要它们。出于这个原因,实现自定义扩展时,您还必须创建一个QExtensionFactory ,即一个类,它能够让你的扩展的一个实例,并使用它注册Qt Designerextension manager

QExtensionManager类提供了扩展的管理设施, Qt Designer中。当一个扩展是必需的, Qt设计的extension manager将通过其所有已注册的工厂运行要求QExtensionFactory.createExtension( )对每一直到第一个是能够创造一个请求扩展选定对象,被发现。这家工厂将使这个扩展的实例。

有四种类型的可在Qt Designer中的扩展:QDesignerContainerExtensionQDesignerMemberSheetExtensionQDesignerPropertySheetExtensionQDesignerTaskMenuExtension。 Qt设计器的行为是一样的具有多页的容器,一个成员表,属性表或任务菜单中的延期申请是否相关。

您可以创建一个新的QExtensionFactory和重新实现QExtensionFactory.createExtension()函数。例如:

         QObject *ANewExtensionFactory.createExtension(QObject *object,
                 const QString &iid, QObject *parent) const
         {
             if (iid != Q_TYPEID(QDesignerContainerExtension))
                 return 0;

             if (MyCustomWidget *widget = qobject_cast<MyCustomWidget*>
                    (object))
                 return new MyContainerExtension(widget, parent);

             return 0;
         }

或者您可以使用现有的工厂,扩大QExtensionFactory.createExtension( )函数,使工厂能够创建您的扩展也是如此。例如:

         QObject *AGeneralExtensionFactory.createExtension(QObject *object,
                 const QString &iid, QObject *parent) const
         {
             MyCustomWidget *widget = qobject_cast<MyCustomWidget*>(object);

             if (widget && (iid == Q_TYPEID(QDesignerTaskMenuExtension))) {
                 return new MyTaskMenuExtension(widget, parent);

             } else if (widget && (iid == Q_TYPEID(QDesignerContainerExtension))) {
                 return new MyContainerExtension(widget, parent);

             } else {
                 return 0;
             }
         }

对于使用QExtensionFactory类的完整示例,请参见Task Menu Extension example。该示例显示了如何创建一个自定义的widget插件Qt Designer中,以及如何使用QDesignerTaskMenuExtension类的自定义项添加到Qt Designer中的任务菜单。


Method Documentation

QExtensionFactory.__init__ (self, QExtensionManager parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造一个扩展工厂给定的parent

QObject QExtensionFactory.createExtension (self, QObject object, QString iid, QObject parent)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

创建由指定的延伸iid对于给定的object。扩展对象为指定的子创建parent

See also extension( ) 。

QObject QExtensionFactory.extension (self, QObject object, QString iid)

从重新实现QAbstractExtensionFactory.extension( ) 。

返回由指定的扩展名iid对于给定的object

See also createExtension( ) 。

QExtensionManager QExtensionFactory.extensionManager (self)

返回扩展工厂的扩展管理器。




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5