好吧,我想在b类中使用create_image,但它不起作用,当我关闭python 3程序时,它显示一个错误:_tkinter.TclError:无效的命令名“.51752240”< / p>
import tkinter
class GUI:
root=tkinter.Tk()
def __init__(self):
self.canvas = tkinter.Canvas(self.root, width=1024, height=960, bg="White")
self.canvas.pack()
self.t=tkinter.PhotoImage(file='hj.jpg')
# self.canvas.create_image(100,100,image=self.t)
self.root.mainloop()
def draw(self,x,y):
self.canvas.create_image(x,y,image=self.t)
class b:
def __init__(self):
G=GUI()
G.draw(100,200)
b()
感谢任何可以回复和帮助的人!!
答案 0 :(得分:2)
最初运行此程序时,只会执行b.__init__()
的第一行;该函数包含self.root.mainloop()
形式的无限循环。关闭窗口后,mainloop最终退出,执行继续G.draw()
- 失败,因为您尝试绘制的画布不再存在。您需要将mainloop()调用移动到代码中的稍后位置 - 可能是b.__init__()
,也可以是文件最末端的顶层。