이 페이지에서

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.