将tkinter中的一个按钮的命令复制到另一个按钮上



给定一个带有命令的tkinter按钮,我想复制它的函数调用,以便在另一个按钮被按下时复制它。我试过这样做:

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)
# Here the magic should occur
btn2.configure(command=btn1.configure()['command'])
btn1.grid(row=0, column=0)
btn2.grid(row=1, column=0)
root.mainloop()

但遗憾的是,按钮2没有调用该函数。

这里是问题的简化版本。实际上,这两个按钮位于脚本的两个非常不同的部分,因此移动函数非常不方便。

作为参考,我已经分两步解决了这个问题。

  1. 在建议的代码中,我错误地使用btn1.configure()['command']而不是@Matiiss正确建议的btn1.cget('command')
  2. 在我的原始代码中,我在将其命令分配给btn2后破坏了btn1,然而这使我失去了命令。用正确的forget替换destroy,我能够正确地传递命令。

最新更新