Python TKinter中的禁用/启用按钮

Python TKinter中的禁用/启用按钮,python,tkinter,Python,Tkinter,我试图使一个按钮像一个开关,所以如果我点击禁用按钮 它将禁用“按钮”(有效)。如果我再次按下它,它将再次启用它 我试过像if,else这样的方法,但没有成功。 下面是一个例子: from tkinter import * fenster = Tk() fenster.title("Window") def switch(): b1["state"] = DISABLED #--Buttons b1=Button(fenster, text="Button") b1.config(he

我试图使一个按钮像一个开关,所以如果我点击禁用按钮 它将禁用“按钮”(有效)。如果我再次按下它,它将再次启用它

我试过像if,else这样的方法,但没有成功。 下面是一个例子:

from tkinter import *
fenster = Tk()
fenster.title("Window")

def switch():
    b1["state"] = DISABLED

#--Buttons
b1=Button(fenster, text="Button")
b1.config(height = 5, width = 7)
b1.grid(row=0, column=0)    

b2 = Button(text="disable", command=switch)
b2.grid(row=0,column=1)

fenster.mainloop()

Tkinter
按钮有三种状态:
激活、正常、禁用

您可以将
状态
选项设置为
禁用
,以灰显按钮并使其无响应。当鼠标在其上时,其值为
active
,默认值为
normal

使用此选项,您可以检查按钮的状态并采取所需的操作。这是工作代码

from tkinter import *

fenster = Tk()
fenster.title("Window")

def switch():
    if b1["state"] == "normal":
        b1["state"] = "disabled"
        b2["text"] = "enable"
    else:
        b1["state"] = "normal"
        b2["text"] = "disable"

#--Buttons
b1 = Button(fenster, text="Button", height=5, width=7)
b1.grid(row=0, column=0)    

b2 = Button(text="disable", command=switch)
b2.grid(row=0, column=1)

fenster.mainloop()

问题出在
开关
功能中

def switch():
    b1["state"] = DISABLED
单击该按钮时,每次都会调用
开关
。对于切换行为,您需要告诉它切换回
NORMAL
状态

def switch():
    if b1["state"] == NORMAL:
        b1["state"] = DISABLED
    else:
        b1["state"] = NORMAL