我在Windows上的PyGtk。我的程序使用GraphicsMagick将PDF转换为图像,然后显示图像。多页PDF的转换时间可能很长,所以程序必须等待命令行返回,我需要解决这个问题并允许用户在创建映像时使用GUI。我尝试使用gtk的线程和python的线程到目前为止还没有工作,有没有办法轻松调用GraphicsMagick转换作为后台进程并且returnot等待它返回?
我正在使用subprocess(command)从命令行执行转换。
答案 0 :(得分: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
答案 1 :(得分:0)
如果仍有待处理的页面,您可以使用调用subprocess.Popen()
的空闲函数并返回True
。这意味着它将在下一个可用的机会再次被召唤。完成页面后,可以从空闲函数返回False
,它将不再被调用。