2011-03-31 3 views
1

Windows 용 PyGtk에 있습니다. 내 프로그램은 GraphicsMagick을 사용하여 PDF를 이미지로 변환 한 다음 이미지를 표시합니다. 변환은 여러 페이지의 PDF에서 매우 길어질 수 있으므로 프로그램이 명령 줄을 반환 할 때까지 기다려야하므로이 문제를 해결하고 사용자가 이미지를 만드는 동안 GUI를 사용할 수 있어야합니다. gtk의 스레딩과 파이썬의 스레딩을 사용하려는 나의 시도는 지금까지는 효과가 없었습니다. GraphicsMagick 변환을 배경 프로세스로 쉽게 호출하고 returnot가 반환 할 때까지 기다리는 방법이 있습니까?Pygtk 긴 명령 행 처리 스레딩

subprocess (명령)를 사용하여 명령 줄에서 변환을 수행하고 있습니다. 자세한 내용은

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()를 사용 사용해야하는 경우