如何在特定条件下禁用/启用特定的tkinter按钮?

时间:2016-01-09 00:34:16

标签: python python-3.x button tkinter tkinter-canvas

我在tinter窗口中创建了以下按钮:

resetall = Button(text = "Clear ALL", command = confirmation)
resetall.pack(side = "left")

此按钮“清除”用户使用Python龟绘制的画布,但我希望在“某些条件”下启用此按钮,例如,如果一个函数正在运行。我试过这个:

if draw.drawing == False:
   resetall.config(state = DISABLED)
elif draw.drawing == True:
   resetall.config(state = NORMAL)

仅在“draw”功能为true时启用按钮,否则禁用它。但是,它似乎不起作用,因为即使draw函数变为true,它也不会启用。我在这做错了什么?任何帮助深表感谢! :)

2 个答案:

答案 0 :(得分:1)

Twas一个非常简单的修复。我所要做的就是将resetall变为global变量,然后将resetall.config(state = ENABLED)分配给draw

答案 1 :(得分:0)

将包含按钮的变量设为全局变量,然后使用button_name.config(state=ACTIVE)button_name.config(state=DISABLED)可以更改按钮的状态。

请记住 - 一旦按钮被禁用,如果您在同一功能内将按钮的状态更改为禁用,您将无法激活它。一旦禁用,您将需要另一个功能来激活上一个按钮