pyQT qprogressbar动态效果
时间: 2023-08-25 19:25:17 浏览: 112
下面是一个使用PyQt5的QProgressBar实现动态效果的完整示例代码:
```python
from PyQt5.QtCore import QTimer
from PyQt5.QtGui import QPalette
from PyQt5.QtWidgets import QApplication, QProgressBar, QWidget, QVBoxLayout
class ProgressBar(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
self.progress_bar = QProgressBar()
self.progress_bar.setRange(0, 100)
self.progress_bar.setTextVisible(False)
palette = QPalette()
palette.setColor(QPalette.Highlight, self.palette().color(QPalette.Active, QPalette.Highlight))
self.progress_bar.setPalette(palette)
layout.addWidget(self.progress_bar)
self.timer = QTimer()
self.timer.timeout.connect(self.update_progress)
self.timer.start(50)
self.setLayout(layout)
def update_progress(self):
value = self.progress_bar.value()
if value < 100:
self.progress_bar.setValue(value + 1)
else:
self.timer.stop()
self.progress_bar.setFormat("Done!")
if __name__ == '__main__':
app = QApplication([])
window = ProgressBar()
window.show()
app.exec_()
```
在上面的示例中,我们创建了一个QProgressBar并将其范围设置为0到100。我们还设置了文本不可见,并使用QPalette为进度条的高亮部分设置了自定义颜色。然后我们创建了一个QTimer并在每50毫秒调用update_progress()方法。该方法检查当前的进度值,如果小于100,则将进度条的值增加1。一旦进度达到100,定时器就会停止,进度条上会显示“Done!”的文本。
阅读全文