Qtのプロセス間通信

Qt では、Qt アプリケーションにプロセス間通信(IPC)を実装する方法をいくつか提供しています。

TCP/IP

クロスプラットフォームのQt Networkモジュールは、ネットワークプログラミングをポータブルで簡単にするクラスを提供します。特定のアプリケーションレベルのプロトコルを使用して通信を行う高レベルクラス(例:QNetworkAccessManager )と、プロトコルを実装するための低レベルクラス(例:QTcpSocketQTcpServerQSslSocket )を提供しています。

ローカルサーバ/ソケット

クロスプラットフォームのQt Networkモジュールは、ローカルネットワークのプログラミングをポータブルで簡単にするクラスを提供します。QLocalServerQLocalSocket クラスがあり、ローカルのセットアップでネットワークのような通信ができます。これらの TCP 対応クラスは、ネットワーク越しの通信を行うためのドロップイン代替クラスとして使用できます。

共有メモリー

クロスプラットフォーム共有メモリ・クラス(QSharedMemory )は、オペレーティング・システムの共有メモリ実装へのアクセスを提供します。これにより、複数のスレッドやプロセスによる共有メモリ・セグメントへの安全なアクセスが可能になります。さらに、QSystemSemaphore を使用して、システムで共有されるリソースへのアクセスを制御したり、プロセス間の通信を行ったりすることができます。

D-Bus プロトコル

Qt D-Busモジュールは、D-Bus プロトコルを使用して IPC を実装するための Unix 専用ライブラリです。Qt のSignals and Slotsメカニズムを IPC レベルに拡張しており、あるプロセスから発せられるシグナルを別のプロセスのスロットに接続することができます。Qt D-Busモジュールの使い方についてはQt D-Busドキュメント を参照してください。

QProcess クラス

クロスプラットフォームのクラスQProcess は、外部プログラムを子プロセスとして起動したり、それらと通信したりするために使用できます。子プロセスの状態を監視・制御するための API を提供します。QProcess は、QIODevice を継承することで、子プロセスの入出力チャンネルにアクセスできるようになります。

セッション管理

Linux/X11、Windows、macOS では、Qt はセッション管理をサポートしています。セッションによって、例えばシャットダウンが発生したときに通知するようなイベントをプロセスに伝搬することができます。プロセスやアプリケーションは、開いているドキュメントの保存など、必要な操作を行うことができます。

Qt Core の IPC のトピックも参照してください

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