The QDesignerCustomWidgetCollectionInterface class allows you to include several custom widgets in one single library. More...
#include <QDesignerCustomWidgetCollectionInterface>
virtual | ~QDesignerCustomWidgetCollectionInterface () |
virtual QList<QDesignerCustomWidgetInterface *> | customWidgets () const = 0 |
The QDesignerCustomWidgetCollectionInterface class allows you to include several custom widgets in one single library.
When implementing a custom widget plugin, you build it as a separate library. If you want to include several custom widget plugins in the same library, you must in addition subclass QDesignerCustomWidgetCollectionInterface.
QDesignerCustomWidgetCollectionInterface contains one single function returning a list of the collection's QDesignerCustomWidgetInterface objects. For example, if you have several custom widgets CustomWidgetOne, CustomWidgetTwo and CustomWidgetThree, the class definition may look like this:
#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; };
In the class constructor you add the interfaces to your custom widgets to the list which you return in the customWidgets() function:
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)
Note that instead of exporting each custom widget plugin using the Q_EXPORT_PLUGIN2() macro, you export the entire collection. The Q_EXPORT_PLUGIN2() macro ensures that Qt Designer can access and construct the custom widgets. Without this macro, there is no way for Qt Designer to use them.
See also QDesignerCustomWidgetInterface and Creating Custom Widgets for Qt Designer.
Destroys the custom widget collection interface.
Returns a list of interfaces to the collection's custom widgets.
© 2008-2011 Nokia Corporation and/or its subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide.
All other trademarks are property of their respective owners. Privacy Policy
Licensees holding valid Qt Commercial licenses may use this document in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and Nokia.
Alternatively, this document may be used under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation.