wxpython ui を使用してチェリーピー アプリケーションを作成しようとしています。問題は、両方のライブラリが閉ループ イベント ハンドラを使用していることです。これが機能する方法はありますか?wx ui start cherrypy を使用すると、UI がロックされますか?
4 に答える
CherryPyで私の答えを参照してくださいWindowsでのツイストシャットダウンを妨害します
つまり、CherryPyはデフォルトでメインループを処理しますが、必ずしもそうする必要はありません。クイックスタートの使用を停止し、engine.blockなしでengine.startを呼び出すと、CPは独自のスレッドで実行され、メインスレッドを他のフレームワークが制御できるようにします。
スレッドを使用する場合は、一方のスレッドでCherryPyサーバーを起動し、もう一方のスレッドでwxPythonを実行できるはずです。wxPython wikiのこの記事(http://wiki.wxpython.org/LongRunningTasks)には、スレッド化に関する情報と、CherryPyサーバーのソースコード(http://www.cherrypy.org/browser/trunk/cherrypy/wsgiserver/ )があります。 __init __。py)には、サーバーがどのように機能するか、そしておそらくサーバーをスレッドと相互作用させる方法についてのドキュメントがあります。
それらを分離する1つの方法は、それらを2つの別個のプロセスとして起動し、ある種のIPCメカニズムを介して通信させることです。共通のプロトコルを話せるようにするには、小さなアダプターを作成する必要があるかもしれません。
CherryPyを実行しているため、wxGUIがサーバーの駆動に使用できるHTTP経由の制御インターフェースを公開できる場合もあります。
Calibre (電子書籍マネージャー) のソースをご覧になることをお勧めします。PyQT で書かれていますが、CherryPy を使用して、LAN の外からライブラリを表示できるようにしています。