tkinter框架未填充父画布

时间:2020-01-01 09:16:32

标签: python python-3.x tkinter tkinter-canvas

我正在尝试使用网格创建可滚动的小部件。滚动条可以正常工作,但是由于某些原因,内部框架无法拉伸以填充画布。

这是一个简单的(不是)工作示例,没有滚动条。

import tkinter as tk

class TestFrame(tk.Frame):

    def __init__(self, master=None, cnf=None, **kw):
        super().__init__(master=master, cnf=cnf, **kw)
        self.grid_columnconfigure(0, weight=1)
        self.grid_rowconfigure(0, weight=1)

        self.canvas = tk.Canvas(self, background='red')
        self.canvas.grid(row=0, column=0, sticky=tk.NSEW)

        self.canvas.grid_columnconfigure(0, weight=1)
        self.canvas.grid_rowconfigure(0, weight=1)

        self.inner = tk.Frame(self.canvas, background='blue')
        self.inner.grid(row=0, column=0, sticky=tk.NSEW)
        self.canvas.create_window(0, 0, anchor=tk.NW, window=self.inner)



if __name__ == "__main__":
    window = tk.Tk()
    window.geometry('500x500')

    window.grid_columnconfigure(0, weight=1)
    window.grid_rowconfigure(0, weight=1)

    testFrame = TestFrame(window)
    testFrame.grid(row=0, column=0, sticky=tk.NSEW)

    window.mainloop()

运行它时,您可以看到红色画布填充了整个窗口,但是看不到蓝色框。即使将内容添加到框架中,它也只会拉伸以容纳子窗口小部件。

我对tkinter的网格布局管理器不了解什么?

预先感谢您的帮助。

0 个答案:

没有答案