CtkSlider_2_Ttk.Label(CustomTkinter) | ..あちゃ! no mic's

..あちゃ! no mic's

クラウドファンディング予定~2026年度
何度でもチャレンジ!
ただいまソーラーピックアップのテスト中

SANTA no Mix

インプットのポートの数だけ、for文ぶん回して、、スライダー並べたのは、いいけれど、スライダーの値を表示できない、厳密に言えば、スライダーと、値を表示するラベルを1対1でn個、並べたいのだけれど、自動で、このやり方で、ウィンドウを生成すると、変数が、上書きされて、有効になるのは、最後の変数だけに、なっていまう、トラブル、が、発生、

CustomTkinterが、現在、進行中なプロジェクトなのもあのですが、


以下のように、一番目のスライダーの値が、PY_VARで、読み込めず、一番目のスライダーの値も、二番目の値も、二番目のラベルに表示されて、いまいます、

 これは、Tkの仕様の問題で、ボタンをfor文で作った場合などは、bindメソッドで、対処できるようなのですが、1日、費やしても、解決、出来ませんでした、℃素人でも、ないので、地雷を踏んで、仕様の変更、やり直し、は、あり得ないので、


外観の変更で、システムトラブルとか、あり得ないので、おそらく、どこも、導入してない、Ttk(Tkの、次期、バージョン)のウィジェットを一部使って、組んで見たら、簡単に、再現、できました、

(ttk.labelとttk.scaleの組み合わせで、scaleの変数をlabelのテキストに読ませただけです)

 見た目が、良いで、始めたので、これでは、許せません、


試しに、ttk.labelとctksliderを付き合わせてみたら、オッケー、

デフォルト値で起動、スライダーの値も読めました、

 

 つまずいた人には、重要なTipsだと思ったので、まとめました、

 

コードを残して、おきますが、責任は負えませんので、あしからず、、


スライダーを5個、for文で、書きました、、


import tkinter as tk
import tkinter.ttk as ttk
import customtkinter

customtkinter.set_appearance_mode("dark")
customtkinter.set_default_color_theme("blue")

app = customtkinter.CTk()
app.geometry("510x300")

frame = customtkinter.CTkFrame(master=app)
frame.grid(row=0, column=0, padx=20, pady=0)

def slider_event(value):
#    global var
    var = value
    print(value)

add_page = 5
for page in range(0,add_page):
    default_var = 10
    var = tk.IntVar(master=frame, value=default_var)
    slider = customtkinter.CTkSlider(master=frame, width=400, from_=0, to=100, number_of_steps=25, border_width=7, variable=var, command=slider_event)
    label_ver = ttk.Label(master=frame, width=10, textvariable=var, foreground="gray70", background="gray17")

    label_ver.grid(row=3+page*add_page, column=0, padx=0)
    slider.grid(row=3+page*add_page, column=1, columnspan=2,  pady=(20,20))

app.mainloop()
 

 値も正常に、見えます、、

 

 

本日も、Picsartに、お願い、

リアルになれば、なるほど、不自然さに目が行って、しまいます、が、