当我按下按钮时,会运行一些耗时的代码。当它运行时,我想避免按钮响应任何进一步的点击。代码完成后,可以重新启用该按钮,并应处理进一步的单击。在
我试着用:
self.btn.blockSignals(True)
self.btn.setEnabled(False)
... code ...
self.btn.blockSignals(True)
self.btn.setEnabled(False)
但是,如果我快速点击这个按钮10次,代码将被执行10次。。。在
实际上,我会将耗时的代码转移到另一个线程。(编辑:但问题仍然是一样的-我认为??。事实上解决了这个问题。见accepted answer。)
如何阻止或忽略某个按钮在运行时的单击?在
以下是我的代码的最低版本:
^{pr2}$
如果将长时间运行的代码放在线程中,一旦线程启动,控件就可以返回到主事件循环,这将允许gui立即更新。在
以下是基于您的示例的基本演示:
相关问题 更多 >
编程相关推荐