Qt D-Bus 어댑터 사용
어댑터는 QObject 파생 클래스에 첨부되어 D-Bus를 사용하여 외부 세계에 대한 인터페이스를 제공하는 특수 클래스입니다. 어댑터는 실제 객체와의 호출을 중계하고, 외부 세계의 입력을 검증하거나 변환하여 실제 객체를 보호하는 것이 주된 목적인 경량 클래스입니다.
다중 상속과 달리 어댑터는 언제든 객체에 추가할 수 있지만 제거할 수는 없으므로 기존 클래스를 내보낼 때 더 큰 유연성을 발휘할 수 있습니다. 어댑터의 또 다른 장점은 서로 다른 인터페이스에서 같은 이름의 메서드에 동일하지는 않지만 유사한 기능을 제공하는 것인데, 이는 표준 인터페이스의 새 버전을 객체에 추가할 때 흔히 발생할 수 있는 경우입니다.
어댑터를 사용하려면 QDBusAbstractAdaptor 을 상속하는 클래스를 만들어야 합니다. 이 클래스는 표준 QObject 파생 클래스이므로 선언에 Q_OBJECT 매크로가 표시되어야 하며 소스 파일은 moc 도구로 처리되어야 합니다. 또한 클래스에는 내보내는 인터페이스를 선언하는 "D-Bus Interface"
이름의 Q_CLASSINFO 항목이 하나 포함되어야 합니다. 클래스당 하나의 항목만 지원됩니다.
클래스의 모든 공용 슬롯은 메서드 호출 유형의 메시지를 통해 버스 오버를 통해 액세스할 수 있습니다. (자세한 내용은 D-Bus 어댑터에서 슬롯 선언하기를 참조하세요). 클래스의 신호는 D-Bus를 통해 자동으로 릴레이됩니다. 그러나 모든 타입이 신호 또는 슬롯의 파라미터 목록을 허용하는 것은 아닙니다. 자세한 내용은 Qt D-Bus 타입 시스템을 참조하세요.
또한 Q_PROPERTY 으로 선언된 모든 프로퍼티는 D-Bus의 프로퍼티 인터페이스를 통해 자동으로 노출됩니다. QObject 프로퍼티 시스템은 읽기 불가능한 프로퍼티를 허용하지 않으므로 어댑터를 사용하여 쓰기 전용 프로퍼티를 선언할 수 없습니다.
자세한 내용을 참조하세요:
- D-Bus 어댑터에서 슬롯 선언하기
- D-Bus 어댑터에서 신호 선언하기
- Qt D-Bus 유형 시스템
- D-Bus 복합 핑퐁 예제에서
complexpong.h
와complexpong.cpp
은 QDBusAbstractAdaptor 의 구현을 보여줍니다.
QDBusAbstractAdaptor도 참조하십시오 .
© 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.