tkintertable 数据如何更新
tkintertable data how to update
我正在使用从 github 克隆的 tkintertable git。基本上使用与 .
相同的示例
在 tkinter 进入其主循环后,如何将原始数据添加到 table?如何更新当前table中的数据?
在下面的代码中,我添加了一个回调并使用 tkinter after()
进行调用。在回调中,它尝试向数据模型添加一行。我还尝试直接将 key/value 对添加到 data
对象。他们都没有工作。
from Tkinter import *
from tkintertable.Tables import TableCanvas
from tkintertable.TableModels import TableModel
master=Tk()
tframe = Frame(master)
tframe.pack(fill='both')
data={'1': {'Klasa':'6A', 'E Hene': 1, 'E Marte': 2,'E Merkurre':3,'E Enjte':4,'E Premte':5},
'2': {'Klasa':'', 'E Hene': 1, 'E Marte': 2,'E Merkurre':3,'E Enjte':4,'E Premte':5}}
model = TableModel()
table = TableCanvas(tframe,model=model)
table.createTableFrame()
model = table.model
model.importDict(data) #can import from a dictionary to populate model
def update_data(event=None):
global data
global model
nk = "3"
print "update_data \n"
model.addRow(key=nk,
Klasa="333")
master.after(5000, update_data)
master.mainloop()
Update the table
This needs to be called to update the display after programmatically
changing the table contents:
table.redraw()
所以你需要
model.addRow(key=nk, Klasa="333")
table.redraw()
它在我的电脑上运行。
我正在使用从 github 克隆的 tkintertable git。基本上使用与
在 tkinter 进入其主循环后,如何将原始数据添加到 table?如何更新当前table中的数据?
在下面的代码中,我添加了一个回调并使用 tkinter after()
进行调用。在回调中,它尝试向数据模型添加一行。我还尝试直接将 key/value 对添加到 data
对象。他们都没有工作。
from Tkinter import *
from tkintertable.Tables import TableCanvas
from tkintertable.TableModels import TableModel
master=Tk()
tframe = Frame(master)
tframe.pack(fill='both')
data={'1': {'Klasa':'6A', 'E Hene': 1, 'E Marte': 2,'E Merkurre':3,'E Enjte':4,'E Premte':5},
'2': {'Klasa':'', 'E Hene': 1, 'E Marte': 2,'E Merkurre':3,'E Enjte':4,'E Premte':5}}
model = TableModel()
table = TableCanvas(tframe,model=model)
table.createTableFrame()
model = table.model
model.importDict(data) #can import from a dictionary to populate model
def update_data(event=None):
global data
global model
nk = "3"
print "update_data \n"
model.addRow(key=nk,
Klasa="333")
master.after(5000, update_data)
master.mainloop()
Update the table
This needs to be called to update the display after programmatically changing the table contents:
table.redraw()
所以你需要
model.addRow(key=nk, Klasa="333")
table.redraw()
它在我的电脑上运行。