python - tkintertable:连续添加按钮?
问题描述
是否可以在 tkintertable 的单元格中添加(tkinter)按钮?例如
from tkintertable import TableCanvas, TableModel
self.contenitore = ttk.Frame(root)
data = {'rec1': {'col1': 99.88, 'col2': 108.79, 'label': 'rec1'},
'rec2': {'col1': 99.88, 'col2': 321.79, 'label': 'rec3'},
'rec3': {'col1': 29.88, 'col2': 408.79, 'label': 'rec2'}
}
tabella = TableCanvas(self.contenitore, data=data,editable=False)
我可以为每一行添加另一个带有按钮的列吗?
解决方案
是的,但它很hacky。TableCanvas 是 tkinter Canvas 的一种,因此您可以使用所有 tkinter Canvas 方法。要将小部件(例如按钮)添加到画布,请使用该create_window()
方法。
tabella.update()
x1,y1,x2,y2 = tabella.getCellCoords(1,1) # place the button at cell 1, 1
btn = tk.Button(tabella, text="Hello")
tabella.create_window(((x1+x2)//2, (y1+y2)//2), window=btn)
您可以并且应该使用 x1,y1,x2,y2 来调整按钮的大小以完全适合单元格。