より明確になるように質問を書き直しました。
私のコードでは、QApplication を作成し、QTimer.singleShot() を使用してスロットをアプリケーションに接続し、アプリケーションを実行しました。
このスロットで、別のプロセスで別の QApplication を作成したいのですが、multiprocessing.Process クラスを使用し、プロセス内から別の QApplication を開始して実行しようとしましたが、イベント ループが既に実行されているため、エラーが発生しました! 2 つのイベント ループを実行できないことはわかっていますが、別のプロセスで新しい QApplication を実行しているので、実行する必要があります。
これが一般的な実装ではないことはわかっていますが、私の場合、これを実行する方がはるかに簡単です。
コード例を次に示します。「QCoreApplication::exec: The event loop is already running」というエラーが表示されます。
import multiprocessing
from PyQt4 import QtCore,QtGui
def first_app_slot():
mProcess = multiprocessing.Process(target = run_another_app)
mProcess.start()
mProcess.join()
def run_another_app():
second_app = QtGui.QApplication([])
second_app.exec_()
if __name__ == "__main__":
first_app = QtGui.QApplication([])
QtCore.QTimer.singleShot(0,first_app_slot)
first_app.exec_()