Tkinter标签不会出现在框架内

问题描述

我有两个帧:big_framesmall_framesmall_framebig_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()