QDesignerCustomWidgetCollectionInterface Class

Die Klasse QDesignerCustomWidgetCollectionInterface ermöglicht es Ihnen, mehrere benutzerdefinierte Widgets in eine einzige Bibliothek einzubinden. Mehr...

Kopfzeile: #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

Detaillierte Beschreibung

Wenn Sie ein benutzerdefiniertes Widget-Plugin implementieren, erstellen Sie es als separate Bibliothek. Wenn Sie mehrere benutzerdefinierte Widget-Plugins in dieselbe Bibliothek einbinden wollen, müssen Sie zusätzlich die Unterklasse QDesignerCustomWidgetCollectionInterface verwenden.

QDesignerCustomWidgetCollectionInterface enthält eine einzige Funktion, die eine Liste der QDesignerCustomWidgetInterface Objekte der Sammlung zurückgibt. Wenn Sie zum Beispiel mehrere benutzerdefinierte Widgets CustomWidgetOne, CustomWidgetTwo und CustomWidgetThree haben, kann 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 zu der Liste hinzu, die Sie mit 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 einzelne benutzerdefinierte Widget-Plugin mit dem Makro Q_PLUGIN_METADATA() exportieren, sondern die gesamte Sammlung. Das Makro Q_PLUGIN_METADATA() stellt sicher, dass Qt Widgets Designer auf die benutzerdefinierten Widgets zugreifen und diese erstellen kann. Ohne dieses Makro gibt es keine Möglichkeit für Qt Widgets Designer, sie zu verwenden.

Siehe auch QDesignerCustomWidgetInterface und Erstellen von benutzerdefinierten Widgets für Qt Widgets Designer.

Dokumentation der Mitgliedsfunktionen

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

Zerstört die Schnittstelle der benutzerdefinierten Widgetsammlung.

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

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

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