변경 사항 Qt Remote Objects
Qt 6의 변경 사항은 프레임워크를 더 효율적이고 사용하기 쉽게 만들기 위한 의도적인 노력의 결과입니다.
저희는 각 릴리스에서 모든 공개 API에 대해 바이너리 및 소스 호환성을 유지하기 위해 노력하고 있습니다. 하지만 Qt를 더 나은 프레임워크로 만들기 위한 노력의 일환으로 일부 변경 사항은 불가피했습니다.
이 항목에서는 Qt Remote Objects 의 변경 사항을 요약하고, 이를 처리하기 위한 지침을 제공합니다.
API 변경 사항
const-ref QString을 인수로 받는 함수가 QStringView로 변경됨
QRemoteObjectHostBase::proxy, QRemoteObjectHostBase::reverseProxy 및 QRemoteObjectNode::instances 는 이제 const QString & 대신 QStringView 를 받아들입니다. 이로 인해 발생하는 가장 큰 차이점은 더 이상 문자열 리터럴(예: node.instances("abc");)로부터의 암시적 변환을 허용하지 않는다는 점입니다. 대신 UTF-16 문자열 리터럴(node.instances(u"abc"))을 사용할 수 있습니다.
사용자 정의 전송 백엔드 지원을 위한 클래스 변경 사항
"semi-private"인 IoDeviceBase, ServerIoDevice 및 ClientIoDevice 클래스는 Qt의 명명 규칙과 일관성을 유지하기 위해 각각 QtROIoDeviceBase, QtROServerIoDevice 및 QtROClientIoDevice 으로 이름이 변경되었습니다. 또한 이 클래스들은 private 헤더인 qconnectionfactories_p.h 에서 qconnectionfactories.h 로 이동되었습니다.
참고: 이 클래스들은 Qt Remote Objects 에 대한 사용자 정의 통신 프로토콜을 구현할 때 더 큰 유연성을 제공하기 위해 제공되지만, 소스나 바이너리 호환성은 보장되지 않습니다. 외부 통신 채널에 대한 지원이 필요한 경우 QRemoteObjectNode::addClientSideConnection() 및 QRemoteObjectHostBase::addHostSideConnection() 메서드를 사용하는 것이 좋습니다.
CMake 변경 사항
repc를 호출하고 생성된 .rep 파일을 CMake 프로젝트에 추가하는 방법에 대한 cmake 지침이 약간 변경되었습니다. 이제 qt5_generate_repc 매크로 대신 qt6_add_repc_sources, qt6_add_repc_replicas 및 qt6_add_repc_merged 함수를 사용해야 합니다. 예를 들어, 다음 코드는:
set(SOURCES
main.cpp
simpleswitch.cpp
)
qt5_generate_repc(SOURCES simpleswitch.rep SOURCE)
add_executable(directconnectserver ${SOURCES})다음과 같이 변경해야 합니다:
set(SOURCES
main.cpp
simpleswitch.cpp
)
add_executable(directconnectserver ${SOURCES})
qt6_add_repc_sources(directconnectserver simpleswitch.rep)이러한 CMake 함수에 대한 자세한 설명은 여기에서 확인할 수 있습니다.
© 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.