11

私が書いている gui の tkinter に Excel のようなテーブル ウィジェットが必要です。何か提案はありますか?

4

3 に答える 3

14

Tkinter を次のように使用して、gui のような単純なスプレッドシートを作成できます。

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()

編集: グリッドから値を取得する場合は、グリッドの子を使用する必要があります。

def find_in_grid(frame, row, column):
    for children in frame.children.values():
        info = children.grid_info()
        #note that rows and column numbers are stored as string                                                                         
        if info['row'] == str(row) and info['column'] == str(column):
            return children
    return None

関数を呼び出すことができ、子を返す場所。エントリの値を取得するには、次を使用できます。

find_in_grid(root, i+1, j).get()
于 2015-06-24T18:23:00.217 に答える
9

完全なテーブル サポートが必要な場合は、 Tktableが少なくとも間違いなく最適なオプションです。簡単に言うと、次の例は、インストール済みであることを前提とした使用方法を示しています。例は python3 の場合ですが、python2 の場合は import ステートメントを変更するだけで済みます。

import tkinter as tk
import tktable

root = tk.Tk()
table = tktable.Table(root, rows=10, cols=4)
table.pack(side="top", fill="both", expand=True)
root.mainloop()

pip でインストール可能なパッケージがないため、Tktable のインストールが難しい場合があります。

データを表示および編集するためのウィジェットのグリッドだけが本当に必要な場合は、入力ウィジェットまたはラベル ウィジェットのグリッドを簡単に作成できます。例については、Pythonの質問に対するこの回答を参照してください。GUI(入力および出力マトリックス)?

于 2011-08-26T19:21:13.570 に答える