tkintertable данные как обновить - PullRequest
0 голосов
/ 10 июля 2019

Я использую tkintertable git, клонированный из github.В основном, используя тот же пример, что и другой вопрос SO .

Как добавить необработанные данные в таблицу после того, как tkinter был в основном цикле?Как вы обновляете данные в текущей таблице?

В приведенном ниже коде я добавил обратный вызов и использую tkinter after() для вызова.При обратном вызове он пытается добавить строку в модель данных.Я также попытался напрямую добавить пару ключ / значение к объекту 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()

1 Ответ

1 голос
/ 10 июля 2019

Из документации

Обновление таблицы

Это необходимо вызвать для обновления дисплея после программного изменения содержимого таблицы:

table.redraw()

Так что вам нужно

model.addRow(key=nk, Klasa="333")
table.redraw()

И это работает на моем компьютере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...