En esta página

QDesignerCustomWidgetCollectionInterface Class

La clase QDesignerCustomWidgetCollectionInterface permite incluir varios widgets personalizados en una única librería. Más...

Cabecera: #include <QDesignerCustomWidgetCollectionInterface>
CMake: find_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmake: QT += designer

Funciones públicas

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

Descripción detallada

Cuando se implementa un plugin de widget personalizado, se construye como una librería separada. Si quieres incluir varios plugins de widgets personalizados en la misma librería, debes además subclasificar QDesignerCustomWidgetCollectionInterface.

QDesignerCustomWidgetCollectionInterface contiene una única función que devuelve una lista de los objetos QDesignerCustomWidgetInterface de la colección. Por ejemplo, si tienes varios widgets personalizados CustomWidgetOne, CustomWidgetTwo y CustomWidgetThree, la definición de la clase puede tener este aspecto:

#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;
};

En el constructor de la clase añades las interfaces de tus widgets personalizados a la lista que devuelves en la función 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;
}

Ten en cuenta que en lugar de exportar cada plugin de widget personalizado utilizando la macro Q_PLUGIN_METADATA(), exportas toda la colección. La macro Q_PLUGIN_METADATA() garantiza que Qt Widgets Designer pueda acceder a los widgets personalizados y construirlos. Sin esta macro, no hay forma de que Qt Widgets Designer los utilice.

Consulte también QDesignerCustomWidgetInterface y Creación de widgets personalizados para Qt Widgets Designer.

Documentación de funciones miembro

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

Destruye la interfaz de la colección de widgets personalizados.

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

Devuelve una lista de interfaces de los widgets personalizados de la colección.

© 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.