擅长:python、mysql、java
<p>如果禁用整个事件循环,应用程序将变得无响应。而且,即使用户没有注意到,操作系统可能会,并提出某种“挂起”通知(就像OS X的色彩鲜艳的旋转沙滩球,没有用户会错过)。</p>
<p>您可能希望在不完全禁用事件循环的情况下禁用<em>重绘</em>。但即使这样也可能太激烈了。</p>
<p>您真正要做的是确保表停止重新绘制自己(不改变实现表视图的方式,您承认这并不理想,但您有理由这样做)。</p>
<p>所以,只需禁用ItemChanged更新。在几乎所有情况下,最简单的方法是调用小部件上的<code>blockSignals(True)</code>。</p>
<p>在极少数情况下,这是行不通的(或者当你处理的是在基于Qt4的项目和早期项目中都要用到的古代代码时),你仍然可以获取信号的处理程序,将它们藏起来,删除它们,然后做你的工作,然后恢复之前的处理程序。</p>
<p>相反,您可以创建一个处理程序可以访问的标志,并对其进行更改,以便在设置了该标志时它们不执行任何操作。这是传统的C做事方式,但在Python中通常不是你想做的。</p>