2012-02-19 10 views
27

私はPythonを学んでいます。単純なGUIアプリケーションを作成するために使っています。Tkinterは既に組み込まれていて(とても使いやすく)、アプリケーションを構築するために使いたいと思います。tkinterにテーブルウィジェットはありますか?

データベースから読み込んだデータが含まれているテーブルを表示するアプリケーションを作りたいと思います。

私はtableを検索しましたが、Tkinter tableコンポーネントに関するサンプルおよび/またはドキュメントが見つかりませんでした。

Tkinterにはtableコンポーネントが組み込まれていますか?もしそうでなければ、私は代わりに何を使うべきですか?

+0

https://github.com/clarenceangel/tkinterstuff初心者には完璧な簡単なものは、まさにあなたが望むものです。 – Mike

答えて

17

Tkinterには組み込みテーブルウィジェットがありません。最も近いものは、ListboxまたはTreeviewのtkinterのサブパッケージttkです。

しかし、tktableは、 TkTableウィジェットの周りのラッパーで、Guilherme Poloと書かれています。 注::このラッパーライブラリを使用するには、元のTkのTkTableライブラリをインストールする必要があります。そうしないと、「インポートエラー」が発生します。

16

テーブルが読み取り専用で、Tkinterの最新バージョンを使用している場合は、ttk.Treeviewウィジェットを使用できます。

EntryまたはLabelウィジェットのグリッドも簡単に作成できます。たとえば、次の回答を参照してください。https://stackoverflow.com/a/11049650/7432

+3

偉大な例[here](http://www.daniweb.com/software-development/python/threads/350266/creating-table-in-python) –

11

tkintertableを使用できます。使用を開始するにはhereを参照してください。

+2

これはhttps://github.com/dmnfarrell/にリダイレクトされますtkintertable **はPython 2のためだけです** – handle

+1

Freewind: 'tkintertable'はPython 2のために書かれていますが、純粋なPythonのように見えます。オープンソースであるためPython 3で動作するように更新するかもしれませんあまりにも困難です。 – martineau

+0

あなたのパンダを使用している場合、これは良いオプションかもしれません:https://github.com/dmnfarrell/pandastable – srf

17

Tkinterのグリッドを使用できます。シンプルなエクセルのような表を作成するには

from Tkinter import * 

root = Tk() 

height = 5 
width = 5 
for i in range(height): #Rows 
    for j in range(width): #Columns 
     b = Entry(root, text="") 
     b.grid(row=i, column=j) 

mainloop() 

あなたはグリッドの子にアクセスし、そこから値を取得することにより、データをつかむことができます。

+0

私はあなたが 'b.pack()'を追加するのを忘れたと思います。 –

0

https://github.com/clarenceangel/tkinterstuff私はこれを作ったが、私はプロではない。それはテーブルを作成し、フレームまたはルートに追加できるフレームとして返します。もちろん、列が各行にある場合でも、任意の数の行と列を持つcsvをフィードします。