未调用配置方法



,所以我想检测窗口大小的更改,并被告知您可以覆盖配置方法,所以我做到了,但是当我尝试更改窗口时,'t似乎被打电话了。

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) 

什么都没有打印,所以我知道它不会进入调整大小的方法。发生了什么?

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

<</p>

最新更新