我有一个QProgressBar,它每秒更新一次。不需要百分比文本,因此在创建时添加了progressBar.setTextVisible(False)
。但是,这使得响应和延迟非常慢,因此更新花费的时间超过一秒钟。另外,其他代码将等待进度条更新执行,从而使整个程序变慢。这既在macOS上发生,在Mac OS上进度条始终不显示文本,在其他操作系统(如Ubuntu)上也可以显示文本。
为什么无法使进度文本不可见,这是为什么?我该如何解决此问题(同时仍删除进度文本)?
答案 0 :(得分:2)
这不是一个滞后。为了使您更好地理解它,请使用以下隐喻:假设有两个人,两个人都必须在1秒内前进1m,但是第一个人每秒执行一次跳跃,而第二个人则执行几个连续的步骤,因此第一个人是相似的在进度栏上没有文字,在第二栏中则是文字。
更改进度条的值时,将评估是否有必要重新绘制它,并且在有可见文本的情况下,无论如何都可以完成,尽管如果更改了该值并不需要,另一方面,如果除了更改后的值之外没有其他文本,出于性能考虑,我认为该步骤是适当的。
该部分代码可以在下面的link
中找到解决方案是在每次更改时强制绘画。
ID
示例:
user_users