このページでは

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;
    QStringList keys() const;
};

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

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

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

「 QStyleFactory 」および「QStyle 」も参照してください 。

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

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

指定されたparent を使用して、スタイルプラグインを構築します。

なお、このコンストラクタは、プラグインをエクスポートするMOC生成コードによって自動的に呼び出されるため、明示的に呼び出す必要はありません。

[virtual noexcept] QStylePlugin::~QStylePlugin()

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

Qtでは、プラグインが使用されなくなると自動的に破棄されるため、デストラクタを明示的に呼び出す必要はありません。

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

指定されたスタイル `key` に対応する `QStyle ` オブジェクトを作成して返します。プラグインがスタイルを作成できない場合は、代わりに 0 を返す必要があります。

style キーは通常、必要なスタイルのクラス名です。キーは大文字小文字を区別しない点に注意してください。例:

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

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