如何正确对齐tkinter按钮并添加水平空白间隔实现指定布局
解决方法
你可以通过两种tkinter grid布局原生特性实现需要的水平间隔:
- 方法1:给控件添加padx参数实现同组按钮间隔
调用grid()方法时传入padx参数,即可为按钮添加左右方向的水平空白间距,数值可按需调整。 - 方法2:设置中间列的最小宽度实现左右组大间隔
不需要每行都插入空Label,直接调用root.columnconfigure(列序号, minsize=间隔宽度)即可为指定列设置固定的最小宽度,形成两组按钮之间的整块空白间隔。
修改后参考代码
seats = ['F11', 'F12', 'F13', 'F14', 'F21', 'F22', 'F23', 'F24', 'B31', 'B32', 'B33', 'B34', 'B41', 'B42', 'B43', 'B44', 'B51', 'B52', 'B53', 'B54', 'E61', 'E62', 'E63', 'E64', 'E71', 'E72', 'E73', 'E74', 'E81', 'E82', 'E83', 'E84', 'E91', 'E92', 'E93', 'E94'] # 设置左右两组按钮中间的间隔列宽度,按需调整minsize数值即可调整间隔大小 root.columnconfigure(3, minsize=80) for i in seats: col = int(i[2]) row = int(i[1]) if col == 3 or col == 4: Button(root, text=i).grid(row=row, column=col+10, padx=3) else: Button(root, text=i).grid(row=row, column=col, padx=3)
参数说明
padx:单位为像素,设置后控件左右两侧都会预留对应宽度的空白,适合调整相邻按钮的小间隔。columnconfigure(minsize):指定对应列的最小宽度,适合实现大块的固定间隔,比逐行插入空Label的写法更高效。
内容的提问来源于stack exchange,提问作者abi
相关产品推荐
相关产品推荐

