tkinter create_image无效

时间:2015-04-12 01:39:15

标签: python-3.x tkinter

我一直试图修复这个bug几个小时,我完全迷失了。我试图将图像绘制到我的tkinter画布上。使用以下代码初始化类时首先创建画布:

self.obj = tk.Tk()
self.screen = tk.Canvas(self.obj, bg='black', height='320', width='640')
self.screen.pack()
self.pixel = tk.PhotoImage(file="pixel.gif")
self.obj.mainloop()

然后在稍后的函数中,我尝试使用以下代码将self.pixel绘制到画布:

 self.screen.create_image((160, 320), image=self.pixel, anchor = tk.CENTER)

这句话肯定会执行,但画布上没有任何内容。当我退出tkinter窗口时,以下回溯将打印到控制台:

File "c:\Python33\lib\tkinter\__init__.py", line 2284, in create_image
    return self._create('image', args, kw)
File "c:\Python33\lib\tkinter\__init__.py", line 2275, in _create
    *(args + self._options(cnf, kw))))
_tkinter.TclError: invalid command name ".43421368"

"无效命令的名称"每次运行程序时都会更改,但错误消息的其余部分保持不变。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

_tkinter.TclError: invalid command name ".43421368"表示您正在尝试在已销毁的窗口小部件上调用方法。

您编写问题的方式,听起来像是在调用 mainloop()之后执行的代码并退出。确保在mainloop()返回之前执行所有代码。

答案 1 :(得分:-1)

你试过了吗?

self.screen.create_image(160, 320, image=self.pixel, anchor = tk.CENTER)