Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QDesignerCustomWidgetCollectionInterface类,可以包含多个自定义部件在一个单一的库。More...
通过继承QPyDesignerCustomWidgetCollectionPlugin。
该QDesignerCustomWidgetCollectionInterface类,可以包含多个自定义部件在一个单一的库。
当实现一个自定义的widget插件,你把它做成一个单独的库。如果你想包括几个自定义的widget插件在同一个库中,你必须在另外的子类QDesignerCustomWidgetCollectionInterface 。
QDesignerCustomWidgetCollectionInterface包含一个单一的函数返回集合的列表QDesignerCustomWidgetInterface对象。例如,如果你有多个自定义部件CustomWidgetOne,CustomWidgetTwo和CustomWidgetThree,类的定义可能看起来像这样:
#include customwidgetoneinterface.h #include customwidgettwointerface.h #include customwidgetthreeinterface.h #include <QtDesigner/QtDesigner> #include <QtCore/qplugin.h> class MyCustomWidgets: public QObject, public QDesignerCustomWidgetCollectionInterface { Q_OBJECT Q_INTERFACES(QDesignerCustomWidgetCollectionInterface) public: MyCustomWidgets(QObject *parent = 0); virtual QList<QDesignerCustomWidgetInterface*> customWidgets() const; private: QList<QDesignerCustomWidgetInterface*> widgets; };
在类的构造函数时,将接口加入您的自定义窗口小部件,您在返回列表customWidgets( )函数:
MyCustomWidgets.MyCustomWidgets(QObject *parent) : QObject(parent) { widgets.append(new CustomWidgetOneInterface(this)); widgets.append(new CustomWidgetTwoInterface(this)); widgets.append(new CustomWidgetThreeInterface(this)); } QList<QDesignerCustomWidgetInterface*> MyCustomWidgets.customWidgets() const { return widgets; } Q_EXPORT_PLUGIN2(customwidgetsplugin, MyCustomWidgets)
请注意,而不是使用导出的每个自定义窗口小部件插件的Q_EXPORT_PLUGIN2()宏,你导出整个集合。该Q_EXPORT_PLUGIN2( )宏可确保Qt Designer可以访问和构建自定义部件。如果没有这个宏,是没有办法的Qt Designer使用它们。
这种方法是抽象的,应在任何子类中重新实现。
返回接口列表,以集合的自定义部件。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |