窗口中的框架里的标签为何不伸展?

1 投票
1 回答
2043 浏览
提问于 2025-04-18 12:16

我想要显示一个

  • 窗口
  • 里面有一个 Frame
  • 在这个 Frame 里有一个 Label,它应该能撑满整个窗口的宽度

下面的代码

import Tkinter as tk

root = tk.Tk()
root.geometry("100x100")
# first column of root will stretch
root.columnconfigure(0, weight=1)

# a frame in root
upper_frame = tk.Frame(root)
# first column of upper_frame will stretch
upper_frame.columnconfigure(0, weight=1)
upper_frame.grid(row=0, column=0)

# a label in upper_frame, which should stretch
mylabel = tk.Label(upper_frame)
mylabel.grid(row=0, column=0)
mylabel.configure(text="hello", background="blue")

root.mainloop()

显示了

这里输入图片描述

为什么这个 Label 没有撑满整个窗口的宽度,而只是和文本一样宽呢?

1 个回答

1

在你使用grid方法时,如果指定了sticky选项(e代表东边,w代表西边),那么这个小部件就会靠着你指定的方向对齐。否则,单元格里的小部件会默认居中对齐。

upper_frame.grid(row=0, column=0, sticky='ew')
..
mylabel.grid(row=0, column=0, sticky='ew')

enter image description here

撰写回答