QDesignerCustomWidgetCollectionInterface 类

QDesignerCustomWidgetCollectionInterface 类允许您在一个单独的库中包含多个自定义小部件。 更多...

头文件 #include <QDesignerCustomWidgetCollectionInterface>
CMakefind_package(Qt6 REQUIRED COMPONENTS Designer)
target_link_libraries(mytarget PRIVATE Qt6::Designer)
qmakeQT += designer

公共函数

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

详细描述

在实现自定义小部件插件时,您将其作为单独的库进行构建。如果您想在一个库中包含多个自定义小部件插件,您还必须继承 QDesignerCustomWidgetCollectionInterface。

QDesignerCustomWidgetCollectionInterface 包含一个单函数,返回集合的 QDesignerCustomWidgetInterface 对象列表。例如,如果您有多个自定义小部件 CustomWidgetOneCustomWidgetTwoCustomWidgetThree,类的定义可能看起来如下

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

在类构造函数中,您将自定义小部件界面添加到列表中,并在 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;
}

请注意,您无需使用 Q_PLUGIN_METADATA() 宏来导出每个自定义小部件插件,而只需导出整个集合。该 Q_PLUGIN_METADATA() 宏确保 Qt Designer 可以访问和构造自定义小部件。没有此宏,Qt Designer 无法使用它们。

另请参阅QDesignerCustomWidgetInterface为 Qt Designer 创建自定义小部件

成员函数文档

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

销毁自定义小部件集合接口。

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

返回集合的自定义小部件的接口列表。

© 2024 Qt公司有限公司。本文件中包含的文档贡献的版权属于各自的所有者。本提供的文档根据由自由软件基金会发布的GNU自由文档许可的第1.3版条款进行许可。GNU自由文档许可第1.3版。Qt及其相关标志是芬兰以及全球其他国家的The Qt Company有限公司的商标。所有其他商标均为各自所有者的财产。