簡體   English   中英

QProgressBar與PyQt4的奇怪行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM