QStylePlugin Class

QStylePluginクラスは、カスタムQStyle プラグインのための抽象ベースを提供します。詳細...

ヘッダー #include <QStylePlugin>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承: QObject

パブリック関数

QStylePlugin(QObject *parent = nullptr)
virtual ~QStylePlugin()
virtual QStyle *create(const QString &key) = 0

詳しい説明

QStylePlugin は、QStyleFactory クラスを使用してアプリケーションに動的にロードできるカスタム・スタイルを簡単に作成できるシンプルなプラグイン・インターフェースです。

スタイル・プラグインを作成するには、この基本クラスをサブクラス化し、純粋仮想のcreate() 関数を再実装し、Q_PLUGIN_METADATA() マクロを使用してクラスをエクスポートします。

class MyStylePlugin : public QStylePlugin
{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QStyleFactoryInterface" FILE "mystyleplugin.json")
public:
    MyStylePlugin(QObject *parent = nullptr);

    QStyle *create(const QString &key) override;
};

プラグインの json メタデータ・ファイルmystyleplugin.json には、プラグインがサポートするスタイルの名前に関する情報を次のように含める必要があります:

{ "Keys": [ "Rocket", "Starbuster" ] }

詳細はQtプラグインの作成方法を参照してください。

QStyleFactoryQStyleも参照して ください。

メンバ関数のドキュメント

[explicit] QStylePlugin::QStylePlugin(QObject *parent = nullptr)

与えられたparent でスタイルプラグインを構築します。

このコンストラクタはプラグインをエクスポートするmoc生成コードによって自動的に呼び出されるので、明示的に呼び出す必要はないことに注意してください。

[virtual noexcept] QStylePlugin::~QStylePlugin()

スタイル・プラグインを破棄します。

Qtはプラグインが使用されなくなると自動的に破棄するので、明示的にデストラクタを呼び出す必要はないことに注意してください。

[pure virtual] QStyle *QStylePlugin::create(const QString &key)

与えられたスタイルkeyQStyle オブジェクトを作成して返します。プラグインがスタイルを作成できない場合は、代わりに 0 を返す必要があります。

スタイルのキーは通常、必要なスタイルのクラス名です。キーの大文字と小文字は区別されません。たとえば

QStyle *MyStylePlugin::create(const QString &key)
{
    QString lcKey = key.toLower();
    if (lcKey == "rocket") {
        return new RocketStyle;
    } else if (lcKey == "starbuster") {
        return new StarBusterStyle;
    }
    return nullptr;
}

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