能否在后续代码中为tkinter Scale组件设置command函数?
为已创建的tk.Scale组件动态设置command选项
当然有可行方案,tkinter的组件选项支持动态修改,你可以通过以下两种方式为已创建的Scale组件指定或修改command函数:
- 使用
config()(或configure())方法:这是tkinter组件修改选项的标准方式 - 直接通过索引赋值修改
command属性
示例代码
import tkinter as tk # 定义Scale的回调函数,注意会接收当前刻度值作为参数 def scale_callback(current_value): print(f"当前刻度值:{current_value}") root = tk.Tk() # 先创建Scale组件,暂不指定command my_scale = tk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL) my_scale.pack(padx=10, pady=10) # 方式1:用config()设置command my_scale.config(command=scale_callback) # 方式2:直接索引赋值(效果和config一致) # my_scale['command'] = scale_callback # 若需要取消command,设置为None即可 # my_scale.config(command=None) root.mainloop()
注意事项
- 回调函数必须接受一个参数,这个参数是Scale当前的刻度值(字符串类型,如需数值可自行转换)
- 两种修改方式的效果完全相同,选择习惯的写法即可
内容的提问来源于stack exchange,提问作者Mcabrera
相关产品推荐
相关产品推荐

