如何将tkinter中一个按钮的command命令复制绑定到另一个按钮
问题原因
- 原有代码里
btn1.configure()不带参数调用时会返回控件所有配置项的描述字典,其中command对应的值是Tcl解释器内部的回调注册标识字符串,并非原生的Python可调用对象,因此绑定到btn2后无法正常触发逻辑。
正确实现方法
直接通过控件属性下标取值btn1['command']即可拿到绑定的Python可调用回调对象,修改你的复制逻辑代码行即可:
# 将原来的复制逻辑替换为这行 btn2.configure(command=btn1['command'])
完整可运行示例
import tkinter as tk root = tk.Tk() btn1 = tk.Button(root, text='Button 1', command=lambda: print('Button hit')) btn2 = tk.Button(root, text='Button 2', command=None) # 正确的复制逻辑 btn2.configure(command=btn1['command']) btn1.grid(row=0, column=0) btn2.grid(row=1, column=0) root.mainloop()
- 该方法无需迁移原函数定义,哪怕两个按钮定义在项目不同位置,只要能拿到btn1的实例引用就能实现回调复制。
内容的提问来源于stack exchange,提问作者ALai
相关产品推荐
相关产品推荐

