2014-09-01 2 views
1

У меня возникают проблемы, фактически убивающие подпроцесс, созданный для отображения изображения в Viewer. В основном я открываю фотографии из стека и хочу отображать их в течение определенного времени, а затем убить подпроцесс. При запуске программы он отображает фотографии по желанию, но я не могу получить фактические функции или .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

Смежные вопросы