Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止按钮按下注册TKInter/Python 3.3_Python_User Interface_Python 3.x_Tkinter - Fatal编程技术网

防止按钮按下注册TKInter/Python 3.3

防止按钮按下注册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

我正在用Python3.3/Tkinter创建一个填充程序,遇到了一个困扰我的问题。基本上,我想防止在某些进程发生时按下按钮注册。我尝试将按钮的状态更改为
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')