只是想知道是否有办法使它能够影响多个小部件。我想发生的是,当我单击一个按钮时,使用该功能它将从红色变为绿色;
def colour_change():
self.configure(bg="green")
button1 = Tk.Button(self, bg="red")
button1.pack()
button2 = Tk.Button(self, bg="red)
button2.pack()
例如,当您按下按钮1时,它应该从红色变为绿色。按钮2相同。我知道我可以使用单独的功能来执行此操作,但是无论如何,我可以在同一功能中执行此操作吗?
答案 0 :(得分:1)
以某种方式,您的函数需要确定调用它的小部件;一种方法是传递引用小部件的参数。在以下示例中,调用命令时将传递包含小部件的列表的索引:
import tkinter as tk
def colour_change(which_button):
if buttons[which_button]['fg'] == 'red':
buttons[which_button].configure(fg="blue")
else:
buttons[which_button].configure(fg="red")
root = tk.Tk()
button1 = tk.Button(root, text='button 1', fg="red", command=lambda: colour_change(0))
button1.pack()
button2 = tk.Button(root, text='button 2', fg="red", command=lambda: colour_change(1))
button2.pack()
buttons = [button1, button2]
root.mainloop()