我正在 MacOSX 上学习 Pyside QProgressBar
。当我像下面一样使用 QProgressBar 时,它仅指示 0% 或 100%。如何流畅地制作一个QProgressBar?有什么办法可以做到这一点吗?
from PySide.QtGui import QApplication, QProgressBar, QWidget
from PySide.QtCore import QTimer
import time
app = QApplication([])
pbar = QProgressBar()
pbar.setMinimum(0)
pbar.setMaximum(100)
pbar.show()
def drawBar():
global pbar
pbar.update()
t = QTimer()
t.timeout.connect(drawBar)
t.start(100)
for i in range(1,101):
time.sleep(0.1)
pbar.setValue(i)
app.exec_()
最佳答案
删除此代码:
for i in range(1,101): # this won't work, because
time.sleep(0.1) # Qt's event loop can't run while
pbar.setValue(i) # you are forcing the thread to sleep
而是添加一个全局变量 p:
p = 0
并在您的drawBar()函数中增加它:
def drawBar():
global pbar
global p
p = p + 1
pbar.setValue(p)
pbar.update()
关于qt - 如何流畅地显示QProgressBar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24645585/