我正在尝试使用网格创建可滚动的小部件。滚动条可以正常工作,但是由于某些原因,内部框架无法拉伸以填充画布。
这是一个简单的(不是)工作示例,没有滚动条。
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的网格布局管理器不了解什么?
预先感谢您的帮助。