私はいくつかの単純な wxpython GUI を持っています。ボタンをクリックすると、別のスレッドでいくつかの io タスクを実行し (GUI をブロックしないようにするため)、io スレッドの実行中にそれに応じて GUI を更新します (たとえば、更新) io スレッドから:"[io タスクのパーセンテージ完了]%") へのラベル。
ただし、これが機能する場合もあれば、例外がスローされる場合もあります。
The program 'python2.7' received an X Window System error.
This probably reflects a bug in the program.
The error was 'RenderBadPicture (invalid Picture parameter)'.
(Details: serial 14127 error_code 163 request_code 149 minor_code 7)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
--sync コマンドを使用してプログラムを実行すると、次のエラーが発生します。
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
GUI を作成したスレッドとは別のスレッドから GUI スレッドを更新することは許可されていないことを読みましたが、その場合、この単純なタスクをどのように達成するのですか? 別のスレッドから GUI を更新します。
ありがとう