2017-11-22 15 views
0

tkinterのフレームまたはグリッドを使ってテーブルにデータを表示する必要があります。 私はTkinterのウィンドウにデータを表示していますが、私は、テーブルに配置したいので、誰でもコード(ともスクロールバー)で私を助けることができる。..テーブルにデータを表示するためにフレームをtkinterに配置する方法は?

ここではコードです:

 def allClub(): 
      data=cursor.execute("SELECT * from CLUBS order by club_name") 


      master = Tk() 
      master.geometry('500x500') 
      master.title('CLUBS') 
      Label1 = Label(master, text="CLUB ID", width=10) 
      Label1.grid(row=0, column=0) 
      Label2 = Label(master, text="CLUB NAME", width=10) 
      Label2.grid(row=0, column=1) 
      Label3 = Label(master, text="RATING", width=10) 
      Label3.grid(row=0, column=2) 
      Label1 = Label(master, text="MANAGER", width=10) 
      Label1.grid(row=0, column=3) 
      Label1 = Label(master, text="CHAIRMAN", width=10) 
      Label1.grid(row=0, column=4) 
      Label1 = Label(master, text="LEAGUE", width=15) 
      Label1.grid(row=0, column=5) 
      Label1 = Label(master, text="TITLES", width=10) 
      Label1.grid(row=0, column=6) 
      Label1 = Label(master, text="YEAR FOUNDED", width=10) 
      Label1.grid(row=0, column=7) 


      for index, dat in enumerate(data): 
       Label(master, text=dat[0]).grid(row=index+1, column=0) 
       Label(master, text=dat[1]).grid(row=index+1, column=1) 
       Label(master, text=dat[2]).grid(row=index+1, column=2) 
       Label(master, text=dat[3]).grid(row=index+1, column=3) 
       Label(master, text=dat[4]).grid(row=index+1, column=4) 
       Label(master, text=dat[5]).grid(row=index+1, column=5) 
       Label(master, text=dat[6]).grid(row=index+1, column=6) 
       Label(master, text=dat[7]).grid(row=index+1, column=7) 
ここでは、出力ウィンドウのスクリーンショットのための

リンク: https://i.stack.imgur.com/zFymD.jpg

+0

あなたのデータがテーブルにすでにある表示されます。あなたは今何を持っているのですか? –

+0

私はsqlite3からデータをインポートしましたが、私は場所のデータを物事のようなボックスに入れたかったのです(固定された寸法とラベル表示を持つボタンの配置方法と同じです)。 –

+0

私はまだあなたが望むものを理解していません。あなたは「テーブル」を求める。 "テーブル"の一般的な定義は "行と列"です。これはすでに持っています。あなたは今ある行と列とはどのように異なっていますか? –

答えて

1

Tkinterには任意の「テーブル」ウィジェットを持っていない、あなたが行と列の多くを持っていることを計画している場合は、あなたが使用できる最善のことはTreeviewかでありますListbox

Frameのスクロールバーを作成することはできません。そのウィジェットのドキュメントではスクロールがサポートされているとは言えないためです。キャンバスの作成を含むこの問題の解決策があり、それを確認することができますhere。ここで

Treeviewウィジェットの例です:

from tkinter import * 
from tkinter import ttk 

root = Tk() 
root.geometry("500x200") 

data = [ ["val1", "val2", "val3"], 
     ["asd1", "asd2", "asd3"], 
     ["bbb1", "bbb3", "bbb4"], 
     ["ccc1", "ccc3", "ccc4"], 
     ["ddd1", "ddd3", "ddd4"], 
     ["eee1", "eee3", "eee4"] ] 


frame = Frame(root) 
frame.pack() 

tree = ttk.Treeview(frame, columns = (1,2,3), height = 5, show = "headings") 
tree.pack(side = 'left') 

tree.heading(1, text="Column 1") 
tree.heading(2, text="Column 2") 
tree.heading(3, text="Column 3") 

tree.column(1, width = 100) 
tree.column(2, width = 100) 
tree.column(3, width = 100) 

scroll = ttk.Scrollbar(frame, orient="vertical", command=tree.yview) 
scroll.pack(side = 'right', fill = 'y') 

tree.configure(yscrollcommand=scroll.set) 

for val in data: 
    tree.insert('', 'end', values = (val[0], val[1], val[2])) 

root.mainloop() 
+0

回答ありがとうございました。他のテーブルには300のデータがあり、データを表示するとデータは完全に表示されません。スクロールバーを追加して、すべてのデータを見ることができます。 –

+0

ツリーを使ってクエリを表示するには? –

+0

"クエリ"?必要な数の列と行を持つことができ、ループを使用してデータをツリーに挿入することができます。 –

関連する問題