TkinterのTreeviewウィジェットを使ってテーブルを作成する方法
テーブルとは、データを行と列の形式で整理して表示する要素です。アプリケーションにGUIのテーブルを実装し、NumPyやPandas、Matplotlibなどの他のPythonライブラリと組み合わせてデータを操作するケースを考えてみましょう。
TkinterにはTreeviewウィジェットが用意されており、これを使用すると表を描画してその中にデータを挿入することができます。Treeviewウィジェットは、Treeview(parent, column, **options)というコンストラクタを定義することで構築できます。
サンプルコード
# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk
# tkinterフレームのインスタンスを作成
win = Tk()
# ウィンドウサイズを設定
win.geometry("700x350")
s = ttk.Style()
s.theme_use('clam')
# Treeviewウィジェットを追加
tree = ttk.Treeview(win, column=("c1", "c2", "c3"), show='headings', height=5)
tree.column("# 1", anchor=CENTER)
tree.heading("# 1", text="ID")
tree.column("# 2", anchor=CENTER)
tree.heading("# 2", text="FName")
tree.column("# 3", anchor=CENTER)
tree.heading("# 3", text="LName")
# Treeviewウィジェットにデータを挿入
tree.insert('', 'end', text="1", values=('1', 'Joe', 'Nash'))
tree.insert('', 'end', text="2", values=('2', 'Emily', 'Mackmohan'))
tree.insert('', 'end', text="3", values=('3', 'Estilla', 'Roffe'))
tree.insert('', 'end', text="4", values=('4', 'Percy', 'Andrews'))
tree.insert('', 'end', text="5", values=('5', 'Stephan', 'Heyward'))
tree.pack()
win.mainloop()コードのポイント
- show='headings':ツリー構造の列を非表示にし、見出し(ヘッダー)のみのテーブル形式で表示します。
- height=5:テーブルに表示する行数を指定します。
- anchor=CENTER:セル内のテキストを中央揃えに配置します。
- heading()メソッド:各列の見出しテキストを設定します。
- insert()メソッド:テーブルの末尾に新しい行としてデータを追加します。
実行結果
上記のコードを実行すると、複数の行と列から構成されたテーブルが表示されたウィンドウが出力されます。

-
Python tkinterでボタンを作成する方法|標準tkinterとttkの違いも解説
PythonのGUIライブラリ「Tkinter」には、ウィンドウ上にボタンを作成するためのさまざまな方法が用意されています。この記事では、標準のtkinterモジュールを使ったボタンの作成方法と、テーマ機能を持つtkinter.ttkモジュールを使ったボタンの作成方法の2通りを、サンプルコードとともにわかりやすく解説します。 tkinterモジュールでボタンを作成する 以下のプログラムでは、まずウィンドウを作成し、続いてButtonクラスを使ってボタンを生成しています。tkinterモジュール全体をインポートしているため、作成されたボタンには従来型のスタイル(テーマ)が適用されます。 主なパラ
-
【Python】Tkinterで作るカラーゲーム – 30秒で文字の色を当てるGUIゲーム開発
GUIアプリケーションの開発において、Pythonの標準ライブラリ「Tkinter」は非常に人気が高く、初心者でも扱いやすいツールです。追加のインストール作業なしに使えるため、Tkinterを活用すればシンプルなGUIゲームでも手軽に開発できます。 この記事では、Tkinterを使った「カラーゲーム」の作り方を紹介します。このゲームでは、画面に表示される単語の文字色をプレイヤーが入力し、正解するたびにスコアが1点ずつ加算されます。制限時間は30秒で、使用される色は赤(Red)、青(Blue)、緑(Green)、ピンク(Pink)、黒(Black)、黄(Yellow)、オレンジ(Orange)、