QDesignerCustomWidgetCollectionInterface Class

QDesignerCustomWidgetCollectionInterface クラスを使用すると、複数のカスタムウィジェットを 1 つのライブラリに含めることができます。詳細...

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

パブリック関数

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

詳細説明

カスタムウィジェットプラグインを実装する場合、別のライブラリとして構築します。複数のカスタムウィジェットプラグインを同じライブラリに含める場合は、さらにQDesinarCustomWidgetCollectionInterfaceをサブクラス化する必要があります。

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 Widgets Designer がカスタムウィジェットにアクセスして構築できるようにします。このマクロがないと、Qt Widgets Designerはカスタムウィジェットを使用できません。

QDesignerCustomWidgetInterface およびQt Widgets Designer 用のカスタムウィジェットの作成も参照してください

メンバ関数 ドキュメント

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

カスタムウィジェットコレクションインターフェースを破棄します。

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

コレクションのカスタムウィジェットのインターフェースのリストを返します。

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundationによって発行されたGNU Free Documentation License version 1.3の条項の下でライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。