【发布时间】:2020-11-15 03:17:50
【问题描述】:
我正在尝试使用 Tkinter 创建一个简单的表。但是,标签和文本小部件不会水平对齐。这是例如我的 Line_number 标签:
Line_Number_label = Label(Frame_Label_Menu, text="N°", anchor="w", bg="#ffffff", width=3)
Line_Number_label.grid(column=0, row=0, sticky=E+W)
这是我的文本标签,它获取用户在输入字段中输入的值:
Text0 = Text(Frame_Text, height=1, width=3)
Text0.grid(column=0, row=Line_number, sticky=E+W)
Text0.insert("end", Line_number)
winfo.width() 函数在 Line_Number_label 上返回 30 像素的长度,在 Text0 上返回 25 像素的长度。我为所有小部件设置了相同的警察和相同的大小:
root.option_add("*Font", "Roboto 10")
由于某种原因,标签小部件的宽度总是略长于文本小部件:
标签小部件似乎不像文本小部件那样根据字符数设置它们的尺寸(“宽度”)。还是我做错了什么?
【问题讨论】:
-
实现目标的最简单方法是使用
pack并使每个小部件fill="x"。 -
请edit 您的问题包含一个minimal reproducible example,说明您遇到的问题。此外,标签小部件确实将它们的尺寸设置为字符数,除非它们有图像。
-
感谢大家的cmets。我对现有的编程世界和stackoverflow都很陌生。这是我第二次提出问题,我真的很喜欢您的建设性回答!我将研究这个最小的可重现示例。
-
尝试使用固定宽度的字体,例如
Consolas或Courier,并为标签设置padx=0。
标签: tkinter text widget label width