我正在使用网格管理器,有两个并排的框架,五列,每列有 1 个按钮,位于第二行的两个框架下方,间隔均匀。所有人都使用“粘性”NSEW,因为如果我放大窗口,我希望它们按比例缩放。
当我将文本输入小部件添加到右侧框架时,它会扭曲它们下方的按钮,因此它们比左侧的大。我不知道如何防止这种失真,或者换一种说法,如何保持每列的大小相同。
文本输入小部件与行/列/权重不对应是否有原因?提前致谢!
我认为这是因为您为条目小部件指定了特定宽度(或接受默认宽度)。由于小部件想要成为特定大小,因此它将导致列增长以适应其子项的请求大小。
一种解决方案是将条目小部件的大小设置为 1。然后,由于 E 和 W 的粘性设置,它将扩展以完全适合列。
您可以尝试使用columnspan
或rowspan
。这应该允许按钮不受文本小部件的影响。
例如:
root=Tk()
button1=Button(root,text="button1")
button1.grid(row=1,column=0)
textbox=Text(root)
textbox.grid(row=1,column=1,rowspan=2)
在每个框架中,您应该将“传播”状态设置为 false,这将防止框架根据内部内容调整大小。因此,如果框架使用grid()
setgrid_propagate(False)
等等。