Qt远程对象更改

Qt 6是对框架进行有意识改进以使其更高效、更易用的结果。

我们试图在每个版本中维护所有公共API的编译和源代码兼容性。但是,为了使Qt成为一个更好的框架,一些更改是不可避免的。

在本节中,我们总结了Qt远程对象的这些更改,并提供了解决它们的指导。

API更改

将接收const-ref QString的函数更改为QStringView

QRemoteObjectHostBase::proxyQRemoteObjectHostBase::reverseProxyQRemoteObjectNode::instances现在接受一个QStringView而不是const QString &。由此引起的最大差异是它不再接受由字符串字面量引起的隐式转换(即node.instances("abc");)。相反,您可以使用UTF-16字符串字面量(node.instances(u"abc"))。

为自定义传输后端支持更改类

“半私有”的IoDeviceBaseServerIoDeviceClientIoDevice类现分别重命名为QtROIoDeviceBaseQtROServerIoDeviceQtROClientIoDevice,以与Qt中的命名保持一致。它们还从私有头文件qconnectionfactories_p.h移动到qconnectionfactories.h

注意:这些类被提供,以便为Qt远程对象的定制通信协议实现提供更多的灵活性,但对于它们没有源代码或二进制兼容性的保证。如果您需要支持外部通信频道,建议您使用QRemoteObjectNode::addClientSideConnection()和QRemoteObjectHostBase::addHostSideConnection()方法。

CMake更改

调用repc并将生成的.rep文件添加到CMake项目的cmake指令略有变化。现在应使用qt6_add_repc_sourcesqt6_add_repc_replicasqt6_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公司有限公司的商标。所有其他商标均为各自所有者的财产。