所以我想检测窗口大小的变化,并且我被告知你可以覆盖Configure方法,所以我这样做了,但是当我尝试更改窗口时,它似乎没有被调用。
class ChangingCanvas(tk.Canvas):
def __init__(self,parent,**kwargs):
tk.Canvas.__init__(self,parent,**kwargs)
self.bind("<Configure>", self.resize)
self.height = self.winfo_height()
self.width = self.winfo_width()
def resize(self,event):
self.width = event.width
self.height = event.height
print(self.width, self.height,self.winfo_height())
self.config(width=self.width, height = self.height)
class Application(tk.Frame):
def __init__(self,master=None):
tk.Frame.__init__(self,master)
self.grid()
self.createWidgets()
def createWidgets(self):
self.canvas = ChangingCanvas(self,highlightthickness=0)
self.canvas.grid(column=1,row=1)
什么都没有打印,所以我知道它不会进入resize方法。发生了什么?
答案 0 :(得分:0)
该方法未被调用,因为您的画布永远不会改变大小。给你的画布一个独特的颜色,你会发现它没有调整大小。这是因为a)当主窗口增长和缩小时,您还没有将应用程序配置为增长和缩小,以及b)您还没有配置画布随着应用程序的增长和缩小而增长和缩小。 / p>