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 クラスは、Qt での命名と一致するように、それぞれQtROIoDeviceBase,QtROServerIoDevice,QtROClientIoDevice に改名されました。また、qconnectionfactories_p.h のプライベート・ヘッダから、qconnectionfactories.h に移動しました。

注意: これらのクラスは、Qt リモートオブジェクトのカスタム通信プロトコルをより柔軟に実装するために用意されたものですが、ソースやバイナリの互換性は保証されていません。外部通信チャネルのサポートが必要な場合は、QRemoteObjectNode::addClientSideConnection() とQRemoteObjectHostBase::addHostSideConnection() メソッドを使用することをお勧めします。

CMakeの変更

repc を呼び出し、生成された.rep ファイルを CMake プロジェクトに追加するcmake の手順が若干変更されました。qt5_generate_repc マクロの代わりに、qt6_add_repc_sourcesqt6_add_repc_replicasqt6_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 関数の詳細な説明は、こちらを参照してください。

ここに含まれる文書の著作権はそれぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。