1

私は Windows で PyGtk を使用しています。私のプログラムは、GraphicsMagick を使用して PDF を画像に変換し、画像を表示します。複数ページの PDF では変換に非常に時間がかかる可能性があるため、プログラムはコマンド ラインが戻るまで待機する必要があり、これを回避して、画像の作成中にユーザーが GUI を使用できるようにする必要があります。gtk のスレッド化と python のスレッド化を使用しようとしても、これまでのところうまくいきませんでした。GraphicsMagick 変換をバックグラウンド プロセスとして簡単に呼び出して、戻るのを待つ方法はありますか?

コマンドラインから変換を実行するために subprocess(command) を使用しています。

4

2 に答える 2

1

subprocess.Popen を使用するだけです。

import subprocess
subprocess.Popen(["command", "arg1", "arg2"])

詳細については、http: //docs.python.org/library/subprocess.html#using-the-subprocess-moduleを参照してください。

本当にスレッドを使用する必要がある場合は、gtk.gdk.threads_init()前に使用してくださいgtk.main()

http://library.gnome.org/devel/pygtk/stable/gdk-functions.html#function-gdk--threads-init

于 2011-03-31T17:31:51.877 に答える
0

処理するページがまだ残っている場合に呼び出しsubprocess.Popen()て返すアイドル関数を使用できます。Trueつまり、次の利用可能な機会に再度呼び出されます。ページの処理が終了したらFalse、idle 関数から戻ることができます。これ以上呼び出されることはありません。

于 2011-04-02T08:42:47.447 に答える