2017-04-04 221 views
1

我試圖做一個代碼,它將數據作爲表返回。不幸的是,它返回12行和9列,即使我只有2個數據點顯示。我的錯誤在哪裏?Python Tkintertable適合窗口太多行/列

這是所使用的代碼:

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

我得到它想出:表具有預定義的模式,對所述至極importDict()函數僅延伸。要修復它,只需創建一個新模型。