2011-03-31 7 views
1

私はPyGtkのWindows版です。私のプログラムは、GraphicsMagickを使ってPDFを画像に変換し、画像を表示します。変換は、複数ページのPDFで非常に長くなる可能性があるので、プログラムはコマンドラインが戻るのを待たなければならず、イメージを作成している間にGUIを使用できるようにする必要があります。 gtkのスレッドとPythonのスレッディングを使用しようとする私の試みはこれまでにはうまくいかなかったのですが、GraphicsMagick変換をバックグラウンドプロセスとして簡単に呼び出す方法はありますか?Pygtkスレッド化長いコマンドラインプロセス

サブプロセス(コマンド)を使用してコマンドラインから変換を実行しています。参照詳細については

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

http://docs.python.org/library/subprocess.html#using-the-subprocess-module

あなたが本当にgtk.main()

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

答えて

1

ちょうどsubprocess.Popenを使用しますを呼び出すアイドル関数を使用すると処理されるページが残っている場合はTrueを返します。それは、次に利用可能な機会に再び呼び出されることを意味します。ページを終了すると、アイドル機能からFalseを返すことができ、それはもはや呼び出されません。

+0

お返事ありがとうございました。残念ながら、私はバックグラウンドで実行する必要があるプロセスがコマンドライン呼び出し以上であることを認識しているため、正しい質問はしませんでした。ただし、多くのページでコマンドラインをn回呼び出すループはPDFにあります。たぶん、subprocess.Popenと他のスレッドの組み合わせ? – jefferson411

+0

Okは私の答えを編集しました。 – crash

0

あなたができる前にスレッドがgtk.gdk.threads_init()を使用使用する必要がある場合