高度なウィジェットセレクター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()


コメント

このブログの人気の投稿

ミライアイ内服薬は薬事法違反で、ほとんど効果がない詐欺ですか?

最高裁での上告理由書受理・却下の判断基準について

裁判官の忌避申立書の作成例