<QtPlugin> - Defining Plugins

<QtPlugin> 헤더 파일은 플러그인을 정의하기 위한 매크로를 정의합니다. More...

Header: #include <QtPlugin>

매크로

Q_DECLARE_INTERFACE(ClassName, Identifier)
Q_IMPORT_PLUGIN(PluginName)
Q_PLUGIN_METADATA(...)

자세한 설명

Qt 플러그인 생성 방법도참조하십시오 .

매크로 문서

Q_DECLARE_INTERFACE(ClassName, Identifier)

이 매크로는 지정된 Identifier (문자열 리터럴)을 ClassName 이라는 인터페이스 클래스에 연결합니다. Identifier 은 고유해야 합니다.

이 매크로는 일반적으로 헤더 파일에서 ClassName 에 대한 클래스 정의 바로 뒤에 사용됩니다.

네임스페이스에 선언된 인터페이스 클래스와 함께 Q_DECLARE_INTERFACE를 사용하려면 Q_DECLARE_INTERFACE가 네임스페이스 안에 있지 않은지 확인해야 합니다. 예를 들어

namespace Foo
{
    struct MyInterface { ... };
}

Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")

Q_INTERFACES() 및 Qt 플러그인 생성 방법도참조하십시오 .

Q_IMPORT_PLUGIN(PluginName)

이 매크로는 Q_PLUGIN_METADATA()로 플러그인의 메타데이터를 선언하는 클래스 이름과 일치하는 PluginName 라는 이름의 플러그인을 가져옵니다.

이 매크로를 애플리케이션의 소스 코드에 삽입하면 정적 플러그인을 사용할 수 있습니다.

예시:

Q_IMPORT_PLUGIN(qjpeg)

정적 플러그인은 애플리케이션을 빌드할 때 링커에 포함시켜야 합니다. 이에 대한 자세한 내용은 정적 플러그인을 참조하세요.

정적 플러그인Qt 플러그인 생성 방법도참조하십시오 .

Q_PLUGIN_METADATA(...)

이 매크로는 이 객체를 인스턴스화하는 플러그인의 일부인 메타 데이터를 선언하는 데 사용됩니다.

매크로는 객체를 통해 구현된 인터페이스의 IID를 선언하고 플러그인에 대한 메타 데이터가 포함된 파일을 참조해야 합니다.

이 매크로는 Qt 플러그인의 소스 코드에 정확히 한 번만 존재해야 합니다.

예제:

class MyInstance : public QObject
{
    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mymetadata.json")
};

이 매크로가 나타나는 클래스는 기본 구성 가능 클래스여야 합니다.

FILE은 선택 사항이며 json 파일을 가리킵니다.

json 파일은 빌드 시스템에서 지정한 include 디렉터리 중 하나에 있어야 합니다. 지정된 파일을 찾을 수 없는 경우 moc는 오류와 함께 종료됩니다.

Q_DECLARE_INTERFACE() 및 Qt XML 플러그인을 만드는 방법도참조하세요 .

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