Qt におけるプロセス間通信
Qt では、Qt アプリケーションにプロセス間通信(IPC)を実装する方法をいくつか提供しています。
TCP/IP
クロスプラットフォーム Qt Networkモジュールは、ネットワークプログラミングをポータブルで簡単にするクラスを提供します。特定のアプリケーションレベルのプロトコルを使用して通信を行う高レベルクラス(例:QNetworkAccessManager )と、プロトコルを実装するための低レベルクラス(例:QTcpSocket 、QTcpServer 、QSslSocket )を提供しています。
ローカル・サーバー/ソケット
クロスプラットフォーム Qt Networkモジュールは、ローカル・ネットワーク・プログラミングをポータブルで簡単にするクラスを提供します。QLocalServer とQLocalSocket クラスを提供し、ローカル・セットアップでネットワークのような通信を可能にします。これらのTCPクラスは、ネットワーク越しの通信を行うためのドロップイン・リプレースメントとして使用できます。
共有メモリー
クロスプラットフォーム共有メモリ・クラス(QSharedMemory )は、オペレーティング・システムの共有メモリ実装へのアクセスを提供します。これにより、複数のスレッドやプロセスによる共有メモリ・セグメントへの安全なアクセスが可能になります。さらに、QSystemSemaphore を使用して、システムで共有されるリソースへのアクセスを制御したり、プロセス間の通信を行ったりすることができます。
Dバスプロトコル
この Qt D-Busモジュールは、D-Bus プロトコルを使用して IPC を実装するために使用できる Unix 専用のライブラリです。Qt のSignals and Slotsメカニズムを IPC レベルに拡張しており、あるプロセスから発せられるシグナルを別のプロセスのスロットに接続することができます。Qtの Qt D-Busドキュメントに Qt D-Busモジュールを使用する方法についての詳細な情報があります。
QProcess クラス
クロスプラットフォーム・クラスQProcess は、外部プログラムを子プロセスとして起動し、それらと通信するために使用することができます。子プロセスの状態を監視・制御するためのAPIを提供します。QProcess は、QIODevice を継承することで、子プロセスの入出力チャンネルにアクセスできるようになります。
セッション管理
Linux/X11、Windows、macOS では、Qt はセッション管理をサポートしています。セッションによって、例えばシャットダウンが発生したときに通知するようなイベントをプロセスに伝搬することができます。プロセスやアプリケーションは、開いているドキュメントの保存など、必要な操作を行うことができます。
Qt Core の IPC トピックも参照してください 。
© 2025 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.