我正在编写一个涉及在tkinter画布上绘制矩形的程序。这是创建画布的代码和它所属的窗口。 (这是在一个对象中,root.mainloop()稍后在对象外部调用,而绘图也出现在其他地方)
self.root = tk.Tk()
self.root.title = "Game"
self.root.resizable(0,0)
self.root.geometry('{}x{}'.format(500, 500))
#create drawing canvas
self.canvas_base = tk.Canvas(self.root, bg="white", width=500, height=500)
self.canvas_base.bind("<Up>", lambda event1, arg1=0: self.arrow_press(event1,arg1)) #bind up key
self.canvas_base.bind("<Right>", lambda event2, arg2=1: self.arrow_press(event2,arg2)) #bind right key
self.canvas_base.bind("<Down>", lambda event3, arg3=2: self.arrow_press(event3,arg3)) #bind down key
self.canvas_base.bind("<Left>", lambda event4, arg4=3: self.arrow_press(event4,arg4)) #bind left key
self.canvas_base.focus_set() #give the window keyboard focus
self.canvas_base.pack()
我注意到的问题是,有时候没有生成画布,因为白色背景无法显示,而我留下了窗口的灰色/灰白色基本背景。控制台中没有弹出错误,窗口中的其他代码运行正常。这是画布的正常问题,还是与代码有关?
考虑到我的代码的大小,以及我不知道究竟是什么导致了这个问题。我决定只发布主要的初始化,但是如果代码中的绘图/其他内容会产生影响,我也可以发布。此外,画布没有其他任何功能。
编辑:
这似乎是在创建画布句点时发生的,可能是Python错误。通过运行与整个文件类似的代码,并在每次运行之前等待一段时间,第一次在大约一小时后运行它会导致没有Canvas出现。