Tkinter如何实现每行单个按钮包含4个文本字段功能
Tkinter表格行按钮合并实现方案
实现思路
- 移除原有内层列循环,每行仅生成1个Button组件
- 拼接该行所有字段作为按钮文本,可选择用分隔符/换行符分隔内容保证可读性
- 给按钮grid布局时添加
columnspan=4参数,让按钮横跨原有4列的宽度,保证布局对齐 - 按需调整按钮的width、height参数适配合并后的内容尺寸
完整修改后代码
from tkinter import * class Table: def __init__(self,root): # 每行仅生成一个按钮 for i in range(total_rows): # 拼接该行4个字段,这里用竖线分隔,也可以换成\n实现换行显示 btn_text = " | ".join(map(str, lst[i])) self.e = Button(root, width=60, text=btn_text) # columnspan=4表示横跨4列,对应原来的4个按钮位置 self.e.grid(row=i, column=0, columnspan=4) # 原数据不变 lst = [(1,'Raj','Mumbai',19), (2,'Aaryan','Pune',18), (3,'Vaishnavi','Mumbai',20), (4,'Rachna','Mumbai',21), (5,'Shubham','Delhi',21)] total_rows = len(lst) total_columns = len(lst[0]) root = Tk() t = Table(root) root.mainloop()
可选调整说明
如果希望4个字段在按钮内分行显示,只需要把拼接符换成\n,同时给按钮加height参数即可,示例如下:
btn_text = "\n".join(map(str, lst[i])) self.e = Button(root, width=20, height=4, text=btn_text)
内容的提问来源于stack exchange,提问作者GGGGGG
相关产品推荐
相关产品推荐

