问题描述
我有两个帧:big_frame
和small_frame
。 small_frame
在big_frame
内部,我想在small_frame
内部放置标签。
标签将不会出现在框架内,而问题出在第8行:去除粘性可以使标签出现在框架内。我做错什么了吗,有没有变通办法,仍然可以在调整窗口大小时重新调整框架大小?
from tkinter import *
root = Tk()
root.geometry('700x500')
# Big Frame
big_frame = LabelFrame(root,text='Big Frame',width=350,height=450,padx=5,pady=5)
big_frame.grid(row=0,column=0,padx=(1,0),sticky='nsew') # the sticky prevents the label from being inside the frame
root.rowconfigure(0,weight=1)
root.columnconfigure(0,weight=1)
# Small Frame
small_frame = LabelFrame(big_frame,text='Small Frame',width=120,height=200).grid(row=0,column=0)
label = Label(small_frame,text='Label')
label.grid(row=0,column=0)
mainloop()
解决方法
初始化后小修正网格化小框架
from tkinter import *
root = Tk()
root.geometry('700x500')
# Big Frame
big_frame = LabelFrame(root,text='Big Frame',width=350,height=450,padx=5,pady=5)
big_frame.grid(row=0,column=0,padx=(1,0),sticky='nsew') # the sticky prevents the label from being inside the frame
root.rowconfigure(0,weight=1)
root.columnconfigure(0,weight=1)
# Small Frame
small_frame = LabelFrame(big_frame,text='Small Frame',width=120,height=200)
small_frame.grid(row=0,column=0)
label = Label(small_frame,text='Label')
label.grid(row=0,sticky='nw')
mainloop()