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列等宽?


基础教程推荐
猜你喜欢
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01