Qt D-Bus 어댑터 사용

어댑터는 ` QObject`에서 파생된 모든 클래스에 연결되는 특수한 클래스로, D-Bus를 사용하여 외부 세계와의 인터페이스를 제공합니다. 어댑터는 경량 클래스로 설계되었으며, 주요 목적은 실제 객체로 향하거나 실제 객체에서 오는 호출을 중계하고, 필요에 따라 외부 세계에서 들어오는 입력을 검증하거나 변환함으로써 실제 객체를 보호하는 것입니다.

다중 상속과 달리, 어댑터는 언제든지 어떤 객체에나 추가할 수 있으며(제거는 불가능함), 이는 기존 클래스를 내보낼 때 더 큰 유연성을 제공합니다. 어댑터의 또 다른 장점은 서로 다른 인터페이스에서 동일한 이름의 메서드를 통해 유사하지만 완전히 동일하지 않은 기능을 제공할 수 있다는 점인데, 이는 객체에 표준 인터페이스의 새 버전을 추가할 때 꽤 흔히 발생하는 경우입니다.

어댑터를 사용하려면 ` QDBusAbstractAdaptor`을 상속하는 클래스를 생성해야 합니다. 이는 표준 ` QObject`에서 파생된 클래스이므로, 선언에 ` Q_OBJECT ` 매크로가 포함되어야 하며 소스 파일은 ` moc ` 도구로 처리되어야 합니다. 또한 해당 클래스에는 ` "D-Bus Interface" `이라는 이름의 ` Q_CLASSINFO ` 항목이 하나 포함되어야 하며, 이를 통해 어떤 인터페이스를 내보내는지 선언해야 합니다. 클래스당 하나의 항목만 지원됩니다.

클래스의 모든 공용 슬롯(public slot)은 MethodCall 유형의 메시지를 통해 버스를 경유하여 접근할 수 있습니다. (자세한 내용은 D-Bus 어댑터에서 슬롯 선언하기를 참조하십시오.) 클래스의 시그널(signal)은 D-Bus를 통해 자동으로 중계됩니다. 그러나 모든 유형이 시그널이나 슬롯의 매개변수 목록에 허용되는 것은 아닙니다. 자세한 내용은 Qt D-Bus 유형 체계를 참조하십시오.

또한, ` Q_PROPERTY `로 선언된 모든 속성은 D-Bus의 `Properties` 인터페이스를 통해 자동으로 노출됩니다. ` QObject ` 속성 시스템은 읽기 불가능한 속성을 허용하지 않으므로, 어댑터를 사용하여 쓰기 전용 속성을 선언할 수는 없습니다.

자세한 정보:

QDBusAbstractAdaptor도 참조하십시오 .

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