防止按钮按下注册TKInter/Python 3.3
我正在用Python3.3/Tkinter创建一个填充程序,遇到了一个困扰我的问题。基本上,我想防止在某些进程发生时按下按钮注册。我尝试将按钮的状态更改为防止按钮按下注册TKInter/Python 3.3,python,user-interface,python-3.x,tkinter,Python,User Interface,Python 3.x,Tkinter,我正在用Python3.3/Tkinter创建一个填充程序,遇到了一个困扰我的问题。基本上,我想防止在某些进程发生时按下按钮注册。我尝试将按钮的状态更改为state='disabled',但这只会将单击从注册延迟到函数完成运行。换句话说,尽管按钮处于“禁用”状态,但如果单击该按钮,按钮按下将在重新启用后立即注册。请参见下面的示例代码 def Button_Action: Button.config(state='disabled') #Activate some hardware
state='disabled'
,但这只会将单击从注册延迟到函数完成运行。换句话说,尽管按钮处于“禁用”状态,但如果单击该按钮,按钮按下将在重新启用后立即注册。请参见下面的示例代码
def Button_Action:
Button.config(state='disabled')
#Activate some hardware that takes a few seconds.
Button.config(state='normal')
因此,问题是:在Tkinter/Python3中,如何有选择地忽略按钮按下
我对Python真的很陌生,尝试搜索相关的问题都没有用,所以如果这是一个愚蠢的问题,或者以前有人问过,请原谅我。另外,我已经用Radiobutton
s和标准按钮
s(如果有帮助的话)对此进行了测试。您可以使用该方法
def按钮_操作():
b、 配置(state='disabled')
b、 update()#嗨@Falsetru,感谢您的快速回复!过一会儿我会检验一下你的建议。另外,谢谢你抓住了这个错误!(我可能不应该在午夜左右提问。):@Elle,不用客气。下面是显示update
在您的情况下的效果的最小示例:。使用/不使用update
。你好@Falsetru,再次感谢你的帮助,我刚刚接受了这个答案。(还有,很抱歉耽搁了,我一直忙得不可开交。)一个简单的问题是:在您的回答中,您使用的是update()
,但在PasteBin示例中,您使用的是update\u idletasks()
。这有什么原因吗?在这种情况下,我应该使用一个而不是另一个吗?谢谢@Elle,如果您按照答案中的链接进行操作,您可以找到有关update
,update\u idletasks
的更多信息。谢谢
def button_action():
b.config(state='disabled')
b.update() # <----------
# Activate some hardware that takes a few seconds.
b.update() # <----------
b.config(state='normal')