_tkinter.TclError:无效的命令名“.9284912”

时间:2017-10-07 18:58:28

标签: python tkinter

好吧,我想在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()

感谢任何可以回复和帮助的人!!

1 个答案:

答案 0 :(得分:2)

最初运行此程序时,只会执行b.__init__()的第一行;该函数包含self.root.mainloop()形式的无限循环。关闭窗口后,mainloop最终退出,执行继续G.draw() - 失败,因为您尝试绘制的画布不再存在。您需要将mainloop()调用移动到代码中的稍后位置 - 可能是b.__init__(),也可以是文件最末端的顶层。