<QtPlugin> - Defining Plugins
<QtPlugin> 헤더 파일은 플러그인을 정의하기 위한 매크로를 정의합니다. 더 보기...
| 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)
이 매크로는 PluginName 라는 이름의 플러그인을 임포트하며, 이는 Q_PLUGIN_METADATA()를 통해 플러그인의 메타데이터를 선언하는 클래스의 이름과 일치합니다.
이 매크로를 애플리케이션 소스 코드의 루트 네임스페이스 파일 범위 내에 삽입하면 정적 플러그인을 사용할 수 있습니다.
예시:
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 파일은 빌드 시스템에서 지정한 포함 디렉터리 중 하나에 위치해야 합니다. moc는 지정된 파일을 찾을 수 없는 경우 오류와 함께 종료됩니다.
Q_DECLARE_INTERFACE() 및 Qt 플러그인 생성 방법도참조하십시오 .
© 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.