python | tkinterの基本的な使い方をまとめる #2
- 2023.06.23
- Python

今回は前回の続きです。
1)ファイルダイアログの表示
このコードでは、tkinter
モジュールと filedialog
モジュールをインポートしています。
select_file
関数は、filedialog.askopenfilename()
を使用してファイルダイアログを表示し、選択されたファイルのパスを取得します。

必要な処理は、select_file
関数内に追加してください。
import tkinter as tk
from tkinter import filedialog
def select_file():
file_path = filedialog.askopenfilename()
entry_var.set(file_path)
root = tk.Tk()
root.geometry("400x300")
root.title("ファイル参照")
Label = tk.Label(root,text = "ファイルを選択してください↓")
Label.pack()
select_button = tk.Button(root, text="ファイルを選択", command=select_file)
select_button.pack()
Label2 = tk.Label(root,text = "選択したファイルのパス↓")
Label2.pack()
entry_var = tk.StringVar()
entry = tk.Entry(root, textvariable=entry_var)
entry.pack()
root.mainloop()
2)表を表示する
この例では、ttk.Treeview
ウィジェットを使用して表を作成しています。
tree["columns"]
を使用して列を定義し、tree.column
を使用して各列の幅を設定します。
また、tree.heading
を使用して列の見出しを設定します。
データを追加するには、tree.insert
を使用します。ここでは、3つの行を追加しています。
最後に、tree.pack()
を呼び出して表を配置します。

import tkinter as tk
from tkinter import ttk
root = tk.Tk()
# Treeviewウィジェットを作成
tree = ttk.Treeview(root)
# 列を定義
tree["columns"] = ("Name", "Age")
# 列の設定
tree.column("#0", width=100, minwidth=100)
tree.column("Name", width=100, minwidth=100)
tree.column("Age", width=100, minwidth=100)
# 列の見出し
tree.heading("#0", text="ID")
tree.heading("Name", text="Name")
tree.heading("Age", text="Age")
# データの追加
tree.insert("", tk.END, text="1", values=("John Doe", "30"))
tree.insert("", tk.END, text="2", values=("Jane Smith", "25"))
tree.insert("", tk.END, text="3", values=("Bob Johnson", "40"))
# Treeviewウィジェットを配置
tree.pack()
root.mainloop()
3)ファイル(CSV)を読み取り、表に反映する
以下のようなCSVを準備します。
ID,Name,Age
1, John Doe, 30
2, Jane Smith, 25
3, Bob Johnson, 40
これを読み取り、表に反映するには以下のように書きます。

import tkinter as tk
from tkinter import ttk, filedialog
import csv
def load_data():
file_path = filedialog.askopenfilename(filetypes=[("CSV Files", "*.csv")])
if file_path:
with open(file_path, 'r') as file:
reader = csv.reader(file)
header = next(reader)
tree["columns"] = header
for col in header:
tree.column(col, width=100, minwidth=100)
tree.heading(col, text=col)
for row in reader:
tree.insert("", tk.END, values=row)
root = tk.Tk()
tree = ttk.Treeview(root)
load_button = tk.Button(root, text="データをロード", command=load_data)
load_button.pack()
tree.pack()
root.mainloop()
今回は以上です。
本日のAmazonおすすめ_Top10
2025-04-19 18:43:42時点
-
前の記事
python | tkinterの基本的な使い方をまとめる #1 2023.06.20
-
次の記事
Python x データ分析 | ワードクラウドを用いたデータ可視化 2023.06.24