How to make Tkinter columns of equal width when widgets span multiple columns?(当Widget跨越多列时,如何使Tkinter列等宽?)
本文介绍了当Widget跨越多列时,如何使Tkinter列等宽?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在下面的内容中,标签为"一"、"二"和"三"的按钮没有均匀间隔。在我看来,问题的根源在于Tk假设包含跨多列的小部件部分的任何列都有默认的最小宽度。但是,这种行为似乎没有文档记录,所以我不确定如何适应或调整它,以便使列具有相等的宽度-包括文本小部件跨越的两列和文本小部件没有跨越的单个列-从而均匀地分隔按钮。我可以通过反复试验来拼凑它,即填充后一列,直到它与前两列匹配,但这似乎是一个糟糕的解决方案。编辑:在下面使用@jwill is0720进行讨论之后,我添加了额外的列(3)和按钮(‘FIV’)以使问题更清晰。此问题是关于当其中一些列由多列小工具跨转而其他列不跨转时,如何获得相同宽度的列。
import Tkinter
master = Tkinter.Tk()
Tkinter.Button(master, text='ONE').grid(row=0, column=0)
Tkinter.Button(master, text='TWO').grid(row=0, column=1)
Tkinter.Button(master, text='THR').grid(row=0, column=2)
Tkinter.Button(master, text='FOU').grid(row=1, column=2)
Tkinter.Button(master, text='FIV').grid(row=0, column=3) # added as per above edit
Tkinter.Text(master).grid(row=1, column=0, columnspan=2)
master.mainloop()
请注意,将grid_columnconfigure
与uniform
配合使用不能解决此问题。插入以下行(请参阅此处类似问题的答案:How to create equal-width grid columns with Tkinter?)只会使列伸展;它们的大小仍然不均匀:
master.grid_columnconfigure(0, weight=1, uniform='a')
master.grid_columnconfigure(1, weight=1, uniform='a')
master.grid_columnconfigure(2, weight=1, uniform='a')
master.grid_columnconfigure(3, weight=1, uniform='a') # added as per above edit
推荐答案
我认为您可能需要使用粘滞选项。
Sticky=定义在生成的单元格为 比小工具本身大。这可以是 常量S、N、E和W,或NW、NE、SW和SE。 例如,W(WEST)表示小部件应与 单元格左边框。W+E表示微件应该拉伸 水平填充整个单元格。W+E+N+S表示微件 应该向两个方向扩展。默认情况下将微件居中 在单元格中。
import Tkinter
master = Tkinter.Tk()
Tkinter.Button(master, text='ONE').grid(row=0, column=0, sticky='NW')
Tkinter.Button(master, text='TWO').grid(row=0, column=1, sticky='NW')
Tkinter.Button(master, text='THR').grid(row=0, column=2, sticky='NW')
Tkinter.Button(master, text='FOU').grid(row=1, column=2)
Tkinter.Text(master).grid(row=1, column=0, columnspan=2)
master.mainloop()
编辑
它看起来是什么样子。除了文本小部件按指定占据两列之外,我的小部件看起来像这样均匀分布。
这篇关于当Widget跨越多列时,如何使Tkinter列等宽?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:当Widget跨越多列时,如何使Tkinter列等宽?


基础教程推荐
猜你喜欢
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- 修改列表中的数据帧不起作用 2022-01-01
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01
- 求两个直方图的卷积 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
- 包装空间模型 2022-01-01
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01