基本控件 | - | - | - |
---|---|---|---|
1.按钮QPushButton | 2.标签QLabel | 3.可编辑框QTextEdit | 4.文本提示QToolTip |
5.单行输入框QLineEdit | 6.消息框QMessageBox | 7.单选按钮QRadioButton | 8.下拉列表QComboBox |
9.图片显示QPixmap | 10.分组框QGroupBox | 11.进度条QProgressBar | 12.对话框QDialog |
13.进度条对话框QProgressDialog | 14.复选框QCheckBox | 15.滑块QSlider | 16.状态栏QStatusBar |
17.文件对话框QFileDialog | 18.工具栏QToolBar | 19.分割条QSplitter | 20.菜单栏QMenuBar |
21.滚动条QScrollBar | 22.时间编辑框QTimeEdit | 23.日期编辑框QDateEdit | 24.时间日期编辑框QDateTimeEdit |
高级控件 | - | - | - |
---|---|---|---|
1.列表控件QListWidget | 2.表格控件QTableWidget | 3.树形控件QTreeWidget | 4.选项卡QTabWidget |
5.浮动窗口QDockWidget | 6.堆叠窗口QStackedWidget | 7.堆叠布局QStackedLayout | 8.网格布局QGridLayout |
9.表单布局QFormLayout | 10.水平布局QHBoxLayout | 11.垂直布局QVBoxLayout | 12.日历QCalendarWidget |
13.线程QThread | 14.定时器QTimer | - | - |
import sys
from PyQt5.QtWidgets import QProgressBar,QPushButton,QHBoxLayout,QWidget,QApplication,QMainWindow
from PyQt5.QtCore import QTimer
class QProgressBarDemo(QMainWindow):
def __init__(self):
super(QProgressBarDemo, self).__init__()
#设置窗口大小
self.resize(400, 150)
#设置窗口标题
self.setWindowTitle("QProgressBarDemo")
btn = QPushButton("开始")
btn.clicked.connect(self.btnClick)
self.progressBar = QProgressBar(self)
self.progressBar.setValue(0)
#创建水平布局
layout = QHBoxLayout()
layout.addWidget(btn)
layout.addWidget(self.progressBar)
mainFrame = QWidget()
mainFrame.setLayout(layout)
self.setCentralWidget(mainFrame)
def btnClick(self):
timer = QTimer(self.progressBar)
def timerFunc():
if self.progressBar.value() >= self.progressBar.maximum():
timer.stop()
self.progressBar.setValue(self.progressBar.value() + 2)
timer.timeout.connect(timerFunc)
timer.start(100) #每隔100ms
self.progressBar.valueChanged.connect(lambda val:print(val))
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QProgressBarDemo()
main.show()
sys.exit(app.exec_())
self.progressBar = QProgressBar(self)
self.progressBar.setValue(0)
创建QProgressBar
对象,然后设置默认进度为0。
timer = QTimer(self.progressBar)
在QPushButton
的点击事件里为QProgressBar
添加定时器。
timer.timeout.connect(timerFunc)
timer.start(100)
设置定时器超时时间100ms,每100ms触发一次超时函数timerFunc
,在该函数里progressbar
进度加2。
self.progressBar.setValue(self.progressBar.value() + 2)