Python Tkintertable适合窗口太多行/列

时间:2017-04-04 10:27:31

标签: python tkinter

我正在尝试创建一个代码,它将数据作为表返回。不幸的是,它返回12行和9列,即使我只有2个数据点可以显示。我的错误在哪里?

这是使用的代码:

Pastebin with code

import Tkinter as tk
from tkintertable.Tables import TableCanvas
class createTable(tk.Frame):
    def __init__(self, master=None):
        tk.Frame.__init__(self, master)
        #########################################
        self.master.grid_rowconfigure(0, weight=1)
        self.master.grid_columnconfigure(0, weight=1)

        self.grid_rowconfigure(0, weight=1)
        self.grid_columnconfigure(0, weight=1)

        self.grid(sticky=tk.NW+tk.SE)
        #########################################
        self.F = tk.Frame(self)
        self.F.grid(row=0, column=0, sticky=tk.NW+tk.SE)
        self.createWidgets()

    def createWidgets(self):
        self.table = TableCanvas(self.F,cellwidth=250, editable=False, )
        self.table.createTableFrame()
        model = self.table.model
        model.importDict(d)
        self.table.redrawTable()

if __name__ == '__main__':
    f = open("./out.txt")
    tempDic = {}

    for var, line in enumerate(f):
        if not "\t" in line and line != '\n':
            key = line.replace(":","").strip()
            tempDic[key] = []
        elif line == '\n':
            continue
        else:
            tempDic[key].append(line.replace("\t","").replace(" ","").strip().replace(":",""))
    f.close()

    a = 0
    d = {}

    #Visualize
    for i, keys in tempDic.iteritems():
        d['rec' + str(a)] = {'System': tempDic[i][0], 'Name': tempDic[i][2], 'Version': tempDic[i][1], 'IP': i}
        a += 1
    print d

    app = createTable()
    app.master.title('Visual')
    app.mainloop()

1 个答案:

答案 0 :(得分:1)

我明白了:表有一个预定义的模型,importDict()函数只能扩展。要修复它,只需创建一个新模型。