tkinter create_image 不工作
tkinter create_image not working
几个小时以来,我一直在尝试修复这个错误,但我完全迷路了。我正在尝试将图像绘制到我的 tkinter canvas。 canvas 是在我使用以下代码初始化 class 时首先创建的:
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
绘制到 canvas:
self.screen.create_image((160, 320), image=self.pixel, anchor = tk.CENTER)
这条语句肯定会执行,但没有任何内容被绘制到canvas。当我退出 tkinter window 时,以下回溯被打印到控制台:
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"
每次我 运行 程序时,"invalid command" 的名称都会改变,但错误消息的其余部分保持不变。
感谢您的帮助。
你试过了吗:
self.screen.create_image(160, 320, image=self.pixel, anchor = tk.CENTER)
_tkinter.TclError: invalid command name ".43421368"
表示您正在尝试调用已销毁的小部件上的方法。
按照你写问题的方式,听起来你的代码在 mainloop()
被调用并退出后执行 。确保所有代码都在 mainloop()
returns 之前执行。
几个小时以来,我一直在尝试修复这个错误,但我完全迷路了。我正在尝试将图像绘制到我的 tkinter canvas。 canvas 是在我使用以下代码初始化 class 时首先创建的:
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
绘制到 canvas:
self.screen.create_image((160, 320), image=self.pixel, anchor = tk.CENTER)
这条语句肯定会执行,但没有任何内容被绘制到canvas。当我退出 tkinter window 时,以下回溯被打印到控制台:
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"
每次我 运行 程序时,"invalid command" 的名称都会改变,但错误消息的其余部分保持不变。
感谢您的帮助。
你试过了吗:
self.screen.create_image(160, 320, image=self.pixel, anchor = tk.CENTER)
_tkinter.TclError: invalid command name ".43421368"
表示您正在尝试调用已销毁的小部件上的方法。
按照你写问题的方式,听起来你的代码在 mainloop()
被调用并退出后执行 。确保所有代码都在 mainloop()
returns 之前执行。