2017-07-20 9 views
0

私はウィンドウ上のデータベースにある履歴を印刷しようとしていますが、私のプログラムは2行しか表示していません。どうしたの? 印刷するとデータが正しく取得できますが、ウィンドウに表示されません。 私にとっては意味がありません。データベース全体のデータを表示するtkinter sqlite3

   def his(self, database, progx): 

        con = sqlite3.connect(database) 
        with con: 
         cur = con.cursor() 
         cur.execute('SELECT * FROM ' + progx + ' ORDER BY id DESC ') 
         index=3 
         for row in cur.fetchall(): 
          print(row) #this works just fine 
          Label(self, text=row[1]).grid(row=index, column=0) 
          Label(self, text=row[2]).grid(row=index, column=1) 
          Label(self, text=row[3]).grid(row=index, column=2) 
          Label(self, text=row[4]).grid(row=index, column=3) 
          Label(self, text=row[5]).grid(row=index, column=4) 
          Label(self, text=row[6]).grid(row=index, column=5) 
          Label(self, text=row[7]).grid(row=index, column=6) 
          Label(self, text=row[8]).grid(row=index, column=7) 
          Label(self, text=row[9]).grid(row=index, column=8) 
          Label(self, text=row[10]).grid(row=index, column=9) 
          Label(self, text=row[11]).grid(row=index, column=10) 
          Label(self, text=row[12]).grid(row=index, column=11) 
          Label(self, text=row[13]).grid(row=index, column=12) 
          Label(self, text=row[14]).grid(row=index, column=13) 
          hist.update() 
          index=+1 
+0

':に

index=+1 

ラベル(自己、テキスト=行[N + 1])グリッド(行=インデックス、カラム= N。 ) 'すべてのその醜い繰り返しコードを取り除く – Nelson

+0

ありがとうが、それは私の問題を解決しません。 –

+0

はい、あなたは正しいです。将来の使用のためのちょっとしたヒント。私にとっては、問題はコード内の何か他のものによって引き起こされているように見えます。印刷されたデータが正常に見える場合、私はそれがうまくいかない理由を見ません。 – Nelson

答えて

0

インデックス作成が間違っているためウィジェットを正しく反復しません。 変更:範囲(14)におけるnの

index += 1 
+0

ありがとう、私は昨日からこれに苦労してきました。 –

関連する問題