如何在tkinter中禁用多个按钮

时间:2014-10-25 21:28:25

标签: python tkinter

我的问题是例如我有3个按钮(bt1,bt2,bt3)。我如何使用btn[i]或其他东西同时改变他们的状态而不用他们的名字来调用它们?

1 个答案:

答案 0 :(得分:2)

您可以像这样使用for循环,它只需要所有按钮并以易于书写的方式禁用它们:

for x in (btn1, btn2, btn3):
    x.config(state = 'disabled')

我认为这可以满足您的需求吗?

这是一个完整的例子:

import tkinter as tk
r = tk.Tk()

def disable_all():
    d.destroy()
    for z in (a, b, c):
        z.config(state = 'disabled')

def func(y):
    print('you clicked button ', y)

a = tk.Button(text = 'A', command = lambda: func('a'))
b = tk.Button(text = 'B', command = lambda: func('b'))
c = tk.Button(text = 'C', command = lambda: func('c'))
d = tk.Button(text = 'disable all', command = disable_all)

for x in (a, b, c, d):
    x.pack()

r.mainloop()

希望这有帮助!