PyQt5系列文章
效果图
完整代码
import sys
from PyQt5.QtWidgets import QPushButton,QLabel,QProgressDialog,QHBoxLayout,QVBoxLayout,QWidget,QApplication,QMainWindow
from PyQt5.QtCore import *
class QProgressDialogDemo(QMainWindow):
def __init__(self):
super(QProgressDialogDemo, self).__init__()
#设置窗口大小
self.resize(400, 150)
self.setWindowTitle("QProgressDialogDemo")
btn = QPushButton("开始")
btn.clicked.connect(self.btnClick)
#创建水平布局
layout = QHBoxLayout()
layout.addWidget(btn)
mainFrame = QWidget()
mainFrame.setLayout(layout)
self.setCentralWidget(mainFrame)
def btnClick(self):
elapsed = 200000
self.progressDialog = QProgressDialog('下载进度','取消',0,elapsed,self)
self.progressDialog.setWindowTitle('QProgressDialog')
self.progressDialog.show()
for val in range(elapsed):
self.progressDialog.setValue(val)
QCoreApplication.processEvents()
if self.progressDialog.wasCanceled():
break
self.progressDialog.setValue(elapsed)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QProgressDialogDemo()
main.show()
sys.exit(app.exec_())
其中最关键的代码是
self.progressDialog = QProgressDialog('下载进度','取消',0,elapsed,self)
在按钮的点击事件函数中创建QProgressDialog
对象,同时设置进度条的文本信息和按钮文字。