|  | Home · All Classes · Modules

# QDesignerCustomWidgetCollectionInterface Class Reference
[QtDesigner module]

The QDesignerCustomWidgetCollectionInterface class allows you to include several custom widgets in one single library. More...

Inherited by QPyDesignerCustomWidgetCollectionPlugin.

### Methods

- __init__ (self)
- __init__ (self, QDesignerCustomWidgetCollectionInterface)
- list-of-QDesignerCustomWidgetInterface customWidgets (self)

## Detailed Description

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.

## Method Documentation

### QDesignerCustomWidgetCollectionInterface.__init__ (self)

### QDesignerCustomWidgetCollectionInterface.__init__ (self, QDesignerCustomWidgetCollectionInterface)

### list-of-QDesignerCustomWidgetInterface QDesignerCustomWidgetCollectionInterface.customWidgets (self)

This method is abstract and should be reimplemented in any sub-class.

Returns a list of interfaces to the collection's custom widgets.