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

在漫长的任务中,禁用的按钮仍然可以捕捉点击。在长任务期间,按钮是灰色的,但如果您在长任务期间单击它,则在长任务完成后会触发单击事件。例如


def onClick(self, evt):

    self.btn.Disable()

    for i in range (1000):

        print i

    self.btn.Enable()

Button 在执行长for循环之前禁用自身,但是如果我们在 for 循环期间单击按钮,它将再次启动 for 循环,因为它在 for 循环完成后再次调用onClick函数。


知道如何禁用点击事件吗?


繁星淼淼
浏览 245回答 3
3回答

哈士奇WWW

老实说,我并没有真正明白你在问什么。您的代码工作如下:当你点击按钮时,按钮(即self.btn)被禁用它将保持禁用状态并执行 for 循环执行完 for 循环后,按钮会恢复活动状态如果您想禁用该按钮,您应该在 onclick 事件之外执行此操作。例如:self.btn.Disable()  # This will grey out the button, you can't click it, so the following onClick function wouldn't be triggereddef onClick(self, evt):    # do something如果您想使用按钮触发任务执行,并在任务执行过程中禁用触发任务的按钮,最好的方法是使用多线程。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python