[英]Strange behavior of QProgressBar with PyQt4
我有以下代碼示例:
import sys
import time
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Bar(QDialog):
def __init__(self, parent=None):
super(Bar, self).__init__()
self.pbar = QProgressBar(self)
self.pbar.setValue(0)
layout = QHBoxLayout()
layout.addWidget(self.pbar)
self.setLayout(layout)
def main(self):
for value in range(1, 100):
time.sleep(1)
print value
self.pbar.setValue(value)
app = QApplication(sys.argv)
form = Bar()
form.show()
form.main()
app.exec_()
我希望progressbar的值每秒增加1。 相反,盡管所有值都已打印在屏幕上,但進度條僅顯示其中一些值。 另外,該欄僅在value == 5時出現。我知道如何使用QBasicTimer()獲得適當的結果,但是為什么這個方法不起作用? 我犯了一個愚蠢的錯誤嗎?
嘗試添加一個
QApplication.processEvents()
在print value
(這將強制UI更新)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.