所以我想要检测窗口大小的变化,我被告知可以覆盖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方法。发生什么事了呢?
发布于 2016-12-10 03:22:26
该方法不会被调用,因为画布永远不会改变大小。给你的画布一个不同的颜色,你会看到它不会调整大小。这是因为: a)您没有将应用程序配置为在主窗口增长和收缩时增长和缩小,以及b)您没有将画布配置为随着应用程序的增长和收缩而增长和收缩。
https://stackoverflow.com/questions/41067345
复制相似问题