未调用Configure方法

时间:2016-12-09 19:12:07

标签: tkinter tk tkinter-canvas

所以我想检测窗口大小的变化,并且我被告知你可以覆盖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方法。发生了什么?

1 个答案:

答案 0 :(得分:0)

该方法未被调用,因为您的画布永远不会改变大小。给你的画布一个独特的颜色,你会发现它没有调整大小。这是因为a)当主窗口增长和缩小时,您还没有将应用程序配置为增长和缩小,以及b)您还没有配置画布随着应用程序的增长和缩小而增长和缩小。 / p>