2014-09-01 69 views
1

我遇到的問題實際上是在查看器中產生了顯示圖像的子流程。基本上我打開堆棧中的圖片,並希望顯示它們一段時間,然後殺死子進程。運行程序時,它顯示的圖片是想要的,但我無法得到實際的.kill.terminate函數的工作。Python子流程不會終止

class ImageDisplay(ThreadParent): 
    def __init__(self, label): 
     ThreadParent.__init__(self, label) 
    def display_image(self): 
     image = ThreadParent.image_stack.pop(0) 
     cwd = os.getcwd() 
     # Automagically opens in preview @ osx 
     p = subprocess.Popen(["open", "file://%s/%s" % (cwd, 
      filepath(filename(image)))]) 
     disptime = displaytime(image) 
     print("Displaying image:", image, "for", disptime, "seconds..") 
     time.sleep(disptime) 
     p.terminate() 
     p.kill() 

所有幫助將不勝感激。

所有最優秀的

回答

1

我認爲open將終止預覽打開後,這意味着你沒有句柄預覽程序。嘗試調用預覽二進制,而不是像:

/Applications/Preview.app/Contents/MacOS/Preview /path/to/image.jpg 

HTH