我正在使用 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(...)
说明问题的图像:
请您参考如下方法:
你需要做几件事来防止标签改变窗口大小:
- 将标签的宽度设置为 1(一)。通过不给标签一个宽度,你是在暗示“当文本变大时变大”。通过给它一个明确的宽度,你是在说“不管文本有多大,如果文本更大,就不要增长”。
- 对网格使用
columnspan选项,让标签所在的单元格跨越按钮网格的宽度。使用 sticky 选项,这样即使标签只要求一个字符的宽度,网格也会强制它变宽以适应空间。
