Python Tkinter - сохранить холст - сбой tkinter - PullRequest
3 голосов
/ 23 февраля 2012

Я пытаюсь сохранить холст, используя метод postscript, и Tkinter вылетает ...

w.postscript(file="my_drawing.ps", colormode='color')

получает исключение:

w.postscript(file="my_drawing.ps", colormode='color')
File "C:\python27\lib\lib-tk\Tkinter.py", line 2307, in postscript
self._options(cnf, kw))
_tkinter.TclError: invalid command name ".57816328L"

Я не уверен, что означает эта ошибка - кто-нибудь сталкивался с этим раньше?

Я тоже пробовал без опции цвета, но безрезультатно.


Редактировать - виджет, урезанный до основ, выдает ту же ошибку:

from Tkinter import *
master = Tk()
w = Canvas(master, width=1000, height=1000)
w.pack()
w.create_oval(450,550,550,450)
mainloop()
w.postscript(file="my_drawing.ps")

1 Ответ

4 голосов
/ 24 февраля 2012

Кажется, это работает, если вы просто переместите вызов w.postscript() над вызовом mainloop().Это означает, что ошибка вызвана вызовом w.postscript() после , графический интерфейс Tkinter закрыт (так как mainloop () работает до закрытия окна).

Я заметил, что это была разница междуваш код и этот пример , поэтому я попробовал его и увидел, что файл .ps был создан сразу после запуска сценария.

...