我一直试图修复这个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"
"无效命令的名称"每次运行程序时都会更改,但错误消息的其余部分保持不变。
感谢您的帮助。
答案 0 :(得分:2)
_tkinter.TclError: invalid command name ".43421368"
表示您正在尝试在已销毁的窗口小部件上调用方法。
您编写问题的方式,听起来像是在调用 mainloop()
之后执行的代码并退出。确保在mainloop()
返回之前执行所有代码。
答案 1 :(得分:-1)
你试过了吗?
self.screen.create_image(160, 320, image=self.pixel, anchor = tk.CENTER)