Auf dieser Seite

QDesignerCustomWidgetCollectionInterface Class

Die Klasse „QDesignerCustomWidgetCollectionInterface“ ermöglicht es Ihnen, mehrere benutzerdefinierte Widgets in einer einzigen Bibliothek zusammenzufassen. Mehr...

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

Öffentliche Funktionen

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

Ausführliche Beschreibung

Bei der Implementierung eines benutzerdefinierten Widget-Plugins erstellen Sie dieses als separate Bibliothek. Wenn Sie mehrere benutzerdefinierte Widget-Plugins in derselben Bibliothek einbinden möchten, müssen Sie zusätzlich eine Unterklasse von `QDesignerCustomWidgetCollectionInterface` erstellen.

QDesignerCustomWidgetCollectionInterface enthält eine einzige Funktion, die eine Liste der „ QDesignerCustomWidgetInterface “-Objekte der Sammlung zurückgibt. Wenn Sie beispielsweise mehrere benutzerdefinierte Widgets haben – CustomWidgetOne, CustomWidgetTwo und CustomWidgetThree –, könnte die Klassendefinition wie folgt aussehen:

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

Im Klassenkonstruktor fügen Sie die Schnittstellen Ihrer benutzerdefinierten Widgets der Liste hinzu, die Sie in der Funktion ` customWidgets()` zurückgeben:

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

Beachten Sie, dass Sie nicht jedes benutzerdefinierte Widget-Plugin einzeln mit dem Makro „ Q_PLUGIN_METADATA()“ exportieren, sondern die gesamte Sammlung. Das Makro „ Q_PLUGIN_METADATA()“ stellt sicher, dass der „ Qt Widgets Designer“ auf die benutzerdefinierten Widgets zugreifen und diese erstellen kann. Ohne dieses Makro kann der „ Qt Widgets Designer“ sie nicht verwenden.

Siehe auch „ QDesignerCustomWidgetInterface “ und „Erstellen benutzerdefinierter Widgets für den Qt Widgets Designer“.

Dokumentation zu Member-Funktionen

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

Löst die Schnittstelle der benutzerdefinierten Widget-Sammlung auf.

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

Gibt eine Liste der Schnittstellen zu den benutzerdefinierten Widgets der Sammlung zurück.

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