Skip to main content
 首页 » 编程设计

python之TKInter之标签中的文本改变窗口的宽度

2025年05月04日15bonelee

我正在使用 tkinter 工具包在 python 中构建一个计算器。问题是,当在计算器中输入文本(并添加到计算的标签中)时,窗口的整个宽度会发生变化并变得更长。我该怎么做才能解决它?

这里是代码的一些重要部分:(主类继承自tk.Frame)

labelStyle = {"padx":10, "pady":10, "justify":"left"} 
calculationsLabel = tk.Label(self, text="", **labelStyle) 
calculationsLabel.grid(row=0, column=1, **gridStyle) 
self.master.resizable(0,0) 
self.pack(padx=5, pady=5) 
self.calculationsLabel=calculationsLabel 
 
for number in range(9,0,-1): 
        ... 
        tk.Button(self, ...).grid(...) 

说明问题的图像:

the calculator without text the calculator with text

请您参考如下方法:

你需要做几件事来防止标签改变窗口大小:

  1. 将标签的宽度设置为 1(一)。通过不给标签一个宽度,你是在暗示“当文本变大时变大”。通过给它一个明确的宽度,你是在说“不管文本有多大,如果文本更大,就不要增长”。
  2. 对网格使用 columnspan 选项,让标签所在的单元格跨越按钮网格的宽度。使用 sticky 选项,这样即使标签只要求一个字符的宽度,网格也会强制它变宽以适应空间。