高度なウィジェットセレクター2
import tkinter as tk
from tkinter import ttk
def on_select():
for child in container.winfo_children():
child.destroy()
name = combo.get()
if name == "ツリービュー (Treeview)":
# 表形式(カラムあり)の表示
w = ttk.Treeview(container, columns=("Value"), show="headings", height=5)
w.heading("Value", text="データ内容")
w.insert("", "end", values=("項目 1"))
w.insert("", "end", values=("項目 2"))
w.insert("", "end", values=("項目 3"))
elif name == "パンウィンドウ (PanedWindow)":
# 境界線を動かせるウィンドウ
w = tk.PanedWindow(container, orient=tk.HORIZONTAL, bg="gray")
left = tk.Label(w, text="左側", bg="lightblue")
right = tk.Label(w, text="右側", bg="lightgreen")
w.add(left)
w.add(right)
elif name == "メニューボタン (Menubutton)":
# 押すと選択肢が出るボタン
w = tk.Menubutton(container, text="オプションを選択", relief="raised")
menu = tk.Menu(w, tearoff=0)
menu.add_command(label="設定1", command=lambda: print("Set 1"))
menu.add_command(label="設定2", command=lambda: print("Set 2"))
w["menu"] = menu
elif name == "ラベル付きスケール (LabeledScale)":
# 数値が上に表示される高機能スライダー
w = ttk.LabeledScale(container, from_=0, to=100)
else:
w = tk.Label(container, text="選択してください")
w.pack(pady=20, fill="both", expand=True)
container.update()
# --- メイン画面の設定 ---
root = tk.Tk()
root.title("Extra Widget Selector")
root.geometry("400x500")
widget_list = [
"ツリービュー (Treeview)",
"パンウィンドウ (PanedWindow)",
"メニューボタン (Menubutton)",
"ラベル付きスケール (LabeledScale)"
]
combo = ttk.Combobox(root, values=widget_list, state="readonly")
combo.set("-- 未紹介のウィジェット --")
combo.pack(pady=20)
tk.Button(root, text="表示する", command=on_select).pack()
container = tk.Frame(root, bd=1, relief="ridge", width=350, height=250)
container.pack(pady=20)
container.pack_propagate(False)
root.mainloop()
コメント
コメントを投稿