以下是关于“PyQt5进度条——QProgressBar”的完整攻略,包括基本概念、使用方法和两个示例。
基本概念
QProgressBar是Qt5中的一个进度条控件,用于显示任务的进度。它可以显示任务的完成百分比,也可以显示任务的进度条。QProgressBar可以设置最小值、最大值和当前值,还可以设置进度条的样式和文本显示格式。
使用方法
以下是使用ProgressBar的基本方法:
- 创建QProgressBar对象:在PyQt5中,可以使用QProgressBar类创建一个进度条对象。
- 设置最小值、最大值和当前值:可以使用setMinimum、setMaximum和setValue方法设置进度条的最小值、最大值和当前值。
- 设置进度条样式:可以使用setStyleSheet方法设置进度条的样式。
- 设置文本显示格式:可以使用setFormat方法设置进度条的文本显示格式。
以下是两个示例:
示例一:显示任务的完成百分比
以下是QProgressBar显示任务的完成百分比的示例:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton
from PyQt5.QtCore import QBasicTimer
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.pbar = QProgressBar(self)
self.pbar.setGeometry(30, 40, 200, 25)
self.btn = QPushButton('Start', self)
self.btn.move(40, 80)
self.btn.clicked.connect(self.doAction)
self.timer = QBasicTimer()
self.step = 0
self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('QProgressBar')
self.show()
def timerEvent(self, e):
if self.step >= 100:
self.timer.stop()
self.btn.setText('Finished')
return
self.step = self.step + 1
self.pbar.setValue(self.step)
def doAction(self):
if self.timer.isActive():
self.timer.stop()
self.btn.setText('Start')
else:
self.timer.start(100, self)
self.btn.setText('Stop')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
示例二:设置进度条样式和文本显示格式
以下是使用QProgressBar设置进度条样式和本显示格式的示例:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.pbar = QProgressBar(self)
self.pbar.setGeometry(30, 40, 200, 25)
self.pbar.setStyleSheet("QProgressBar {border: 2px solid grey; border-radius: 5px; padding: 1px}"
"QProgressBar::chunk {background-color: #CD96CD; width: 10px;}")
self.pbar.setAlignment(Qt.AlignCenter)
self.pbar.setFormat('%p%')
self.pbar.setValue(50)
self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('QProgressBar')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
结论
QProgressBar是PyQt5中的一个进度条控件,用于显示任务进度。它可以设置最小值、最大值和当前值,还可以设置进度条的样式和文本显示格式。使用QProgressBar的基本方法包括创建QProgressBar对象、设置最小值、大值和当前值、设置进度条样式和文本显示格式。可以使用示例学习和理解QProgressBar的使用方法。