Sur cette page

QDesignerCustomWidgetCollectionInterface Class

La classe `QDesignerCustomWidgetCollectionInterface` vous permet d'intégrer plusieurs widgets personnalisés dans une seule bibliothèque. En savoir plus...

En-tête : #include <QDesignerCustomWidgetCollectionInterface>
CMake : find_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmake : QT += designer

Fonctions publiques

virtual ~QDesignerCustomWidgetCollectionInterface()
virtual QList<QDesignerCustomWidgetInterface *> customWidgets() const = 0

Description détaillée

Lors de l'implémentation d'un plugin de widget personnalisé, vous le compilez en tant que bibliothèque distincte. Si vous souhaitez inclure plusieurs plugins de widgets personnalisés dans la même bibliothèque, vous devez en outre créer une sous-classe de QDesignerCustomWidgetCollectionInterface.

QDesignerCustomWidgetCollectionInterface contient une seule fonction renvoyant une liste des objets QDesignerCustomWidgetInterface de la collection. Par exemple, si vous disposez de plusieurs widgets personnalisés CustomWidgetOne, CustomWidgetTwo et CustomWidgetThree, la définition de la classe peut ressembler à ceci :

#include customwidgetoneinterface.h
#include customwidgettwointerface.h
#include customwidgetthreeinterface.h

#include <QtDesigner/qtdesigner.h>
#include <QtCore/qplugin.h>

class MyCustomWidgets: public QObject, public QDesignerCustomWidgetCollectionInterface
{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetCollectionInterface")
    Q_INTERFACES(QDesignerCustomWidgetCollectionInterface)

public:
    MyCustomWidgets(QObject *parent = 0);

    QList<QDesignerCustomWidgetInterface*> customWidgets() const override;

private:
    QList<QDesignerCustomWidgetInterface*> widgets;
};

Dans le constructeur de la classe, vous ajoutez les interfaces de vos widgets personnalisés à la liste que vous renvoyez dans la fonction ` 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;
}

Notez qu’au lieu d’exporter chaque plugin de widget personnalisé à l’aide de la macro Q_PLUGIN_METADATA(), vous exportez l’ensemble de la collection. La macro Q_PLUGIN_METADATA() garantit que Qt Widgets Designer puisse accéder aux widgets personnalisés et les construire. Sans cette macro, Qt Widgets Designer ne peut en aucun cas les utiliser.

Voir également « QDesignerCustomWidgetInterface » et « Création de widgets personnalisés pour Qt Widgets Designer ».

Documentation sur les fonctions membres

[virtual constexpr noexcept default] QDesignerCustomWidgetCollectionInterface::~QDesignerCustomWidgetCollectionInterface()

Supprime l'interface de la collection de widgets personnalisés.

[pure virtual] QList<QDesignerCustomWidgetInterface *> QDesignerCustomWidgetCollectionInterface::customWidgets() const

Renvoie une liste des interfaces des widgets personnalisés de la collection.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.