首页 > 解决方案 > 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)

我可以为每一行添加另一个带有按钮的列吗?

标签: pythonbuttontkinter

解决方案


是的,但它很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 来调整按钮的大小以完全适合单元格。


推荐阅读