Qt远程对象更改
Qt 6是对框架进行有意识改进以使其更高效、更易用的结果。
我们试图在每个版本中维护所有公共API的编译和源代码兼容性。但是,为了使Qt成为一个更好的框架,一些更改是不可避免的。
在本节中,我们总结了Qt远程对象的这些更改,并提供了解决它们的指导。
API更改
将接收const-ref QString的函数更改为QStringView
QRemoteObjectHostBase::proxy、QRemoteObjectHostBase::reverseProxy 和 QRemoteObjectNode::instances现在接受一个QStringView而不是const QString &
。由此引起的最大差异是它不再接受由字符串字面量引起的隐式转换(即node.instances("abc");
)。相反,您可以使用UTF-16字符串字面量(node.instances(u"abc")
)。
为自定义传输后端支持更改类
“半私有”的IoDeviceBase
、ServerIoDevice
和ClientIoDevice
类现分别重命名为QtROIoDeviceBase
、QtROServerIoDevice
和QtROClientIoDevice
,以与Qt中的命名保持一致。它们还从私有头文件qconnectionfactories_p.h
移动到qconnectionfactories.h
。
注意:这些类被提供,以便为Qt远程对象的定制通信协议实现提供更多的灵活性,但对于它们没有源代码或二进制兼容性的保证。如果您需要支持外部通信频道,建议您使用QRemoteObjectNode::addClientSideConnection()和QRemoteObjectHostBase::addHostSideConnection()方法。
CMake更改
调用repc并将生成的.rep
文件添加到CMake项目的cmake
指令略有变化。现在应使用qt6_add_repc_sources
、qt6_add_repc_replicas
和qt6_add_repc_merged
函数,而不是qt5_generate_repc
宏。例如,以下代码
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函数的更详细描述可以在这里找到。
© 2024Qt公司有限公司。本文件中包含的文档贡献均为各自所有者的版权所有。本提供的文档根据自由软件基金会发布的GNU自由文档许可证1.3版本的条款许可。Qt及其相应的标志是芬兰和/或其他国家/地区的Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。