为了账号安全,请及时绑定邮箱和手机立即绑定

禁用的按钮在长时间任务 wxpython 中仍然捕捉点击

禁用的按钮在长时间任务 wxpython 中仍然捕捉点击

繁星淼淼 2021-07-20 17:38:05
在漫长的任务中,禁用的按钮仍然可以捕捉点击。在长任务期间,按钮是灰色的,但如果您在长任务期间单击它,则在长任务完成后会触发单击事件。例如def onClick(self, evt):    self.btn.Disable()    for i in range (1000):        print i    self.btn.Enable()Button 在执行长for循环之前禁用自身,但是如果我们在 for 循环期间单击按钮,它将再次启动 for 循环,因为它在 for 循环完成后再次调用onClick函数。知道如何禁用点击事件吗?
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

老实说,我并没有真正明白你在问什么。

您的代码工作如下:

  1. 当你点击按钮时,按钮(即self.btn)被禁用

  2. 它将保持禁用状态并执行 for 循环

  3. 执行完 for 循环后,按钮会恢复活动状态

如果您想禁用该按钮,您应该在 onclick 事件之外执行此操作。例如:

self.btn.Disable()  # This will grey out the button, you can't click it, so the following onClick function wouldn't be triggered

def onClick(self, evt):

    # do something

如果您想使用按钮触发任务执行,并在任务执行过程中禁用触发任务的按钮,最好的方法是使用多线程。


查看完整回答
反对 回复 2021-07-28
  • 3 回答
  • 0 关注
  • 244 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信