首页 > 解决方案 > 实时显示 tkinter 刻度值

问题描述

我使用以下代码在 Tkinter 中制作了比例尺:

demo = ttk.Labelframe(col2, text='Demo', padding=(15, 10))
demo.pack(side='top', fill='both', expand='yes', pady=(10, 0))
epoch = ttk.Frame(demo)
epoch.pack(fill='x', padx=(20, 0), pady=(5, 0))

ttk.Label(epoch, text='10 epoch').pack(side='left')
ttk.Label(epoch, text='1000 epoch').pack(side='right')
ttk.Scale(epoch, value=990, from_=10, to=1000).pack(side='left', fill='x', expand='yes', padx=(30, 0))

我想要一个标签,在它的正下方实时显示当前位置的刻​​度值。我应该如何做到这一点?

在此处输入图像描述

标签: pythontkinter

解决方案


您可以创建一个IntVar()

scale_val=IntVar()
ttk.Scale(epoch, value=990,variable=scale_val, from_=10, to=1000).pack(side='left', fill='x', expand='yes', padx=(30, 0))
lbl_val=ttk.Label(epoch)
lbl_val.pack(side='bottom') #=== Set it according to your will

然后你可以跟踪变量:

def trace_method(*args):
    x=scale_val.get()
    lbl_val.config(text=f'{x} %')
scale_val.trace('w',trace_method)

推荐阅读