Sur cette page

QDesignerCustomWidgetCollectionInterface Class

La classe QDesignerCustomWidgetCollectionInterface vous permet d'inclure plusieurs widgets personnalisés dans une seule bibliothèque. Plus d'informations...

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

Lorsque vous implémentez un plugin de widget personnalisé, vous le construisez comme une bibliothèque séparée. Si vous souhaitez inclure plusieurs plugins de widgets personnalisés dans la même bibliothèque, vous devez en outre sous-classer QDesignerCustomWidgetCollectionInterface.

QDesignerCustomWidgetCollectionInterface contient une seule fonction renvoyant une liste des objets QDesignerCustomWidgetInterface de la collection. Par exemple, si vous avez 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 peut accéder aux widgets personnalisés et les construire. Sans cette macro, Qt Widgets Designer ne peut pas les utiliser.

Voir également QDesignerCustomWidgetInterface et Créer des widgets personnalisés pour Qt Widgets Designer.

Documentation des fonctions membres

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

Détruit l'interface de collecte des widgets personnalisés.

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

Renvoie une liste d'interfaces pour les 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.