PyQt5:QProgressBar进度条(26)
来源:互联网 发布:淘宝的花呗怎么还款 编辑:程序博客网 时间:2024/06/16 15:57
学习《PyQt4入门指南 PDF中文版.pdf 》笔记
当我们在处理一个耗时较长的任务时,可能就会用到进度条部件。因为使用进度条可以形象告诉用户当前的任务正在进行中。PyQt5工具包提供了水平和垂直两种类型的进度条部件。我们可以设置进度条的最大和最小值,默认的最大和最小值分别为0和99。
<span style="font-size:12px;">#!/usr/bin/python# progressbar.pyfrom PyQt5.QtWidgets import QApplication, QProgressBar, QPushButtonfrom PyQt5 import QtWidgetsfrom PyQt5.QtCore import Qt, QBasicTimerclass ProgressBar(QtWidgets.QWidget): def __init__(self, parent= None): QtWidgets.QWidget.__init__(self) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('ProgressBar') self.pbar = QProgressBar(self) self.pbar.setGeometry(30, 40, 200, 25) self.button = QPushButton('Start', self) self.button.setFocusPolicy(Qt.NoFocus) self.button.move(40, 80) self.button.clicked.connect(self.onStart) self.timer = QBasicTimer() self.step = 0 def timerEvent(self, event): if self.step >=100: self.timer.stop() return self.step = self.step + 1 self.pbar.setValue(self.step) def onStart(self): if self.timer.isActive(): self.timer.stop() self.button.setText('Start') else: self.timer.start(100, self) self.button.setText('Stop') if __name__ == "__main__": import sys app = QApplication(sys.argv) qb = ProgressBar() qb.show() sys.exit(app.exec_())</span>
在这个示例中,我们创建了一个水平的进度条和一个按钮。按钮用来启动或终止进度。
self.pbar= QProgressBar(self)
创建一个进度条。
self.timer= QBasicTimer()
创建一个定时器对象。
self.timer.start(100,self)
需要激活该进度条,我们需要使用定时器的start()方法启动定时器。该方法的第一个参数为超时时间。第二个参数表示当前超时时间到了以后定时器触发超时事件的接受对象。
def timerEvent(self, event):
if self.step >=100:
self.timer.stop()
return
self.step = self.step + 1
self.pbar.setValue(self.step)
每一个QObject对象或其子对象都有一个QObject.timerEvent方法。在本实例中,为了响应定时器的超时事件,我们需要使用上面的代码重写进度条的timerEvent方法。
- PyQt5:QProgressBar进度条(26)
- Qt-----进度条QProgressBar
- 进度条QProgressBar/QProgressDialog类
- Qt-----进度条QProgressBar
- 进度条QProgressBar和QProgressDialog
- 进度条,进度条对话框,QProgressBar类
- QProgressBar(进度条)的使用
- QT笔记之进度条QProgressBar和QProgressDialog
- Qt学习11——进度条QProgressBar
- PyQt5教程-14-进度条
- PyQt5教程 控件 QCheckBox、Toggle button、QSlider、QProgressBar、QCalendarWidget
- QProgressBar
- Qt学习——进度条QProgressBar/QProgressDialog类
- Qt学习——进度条QProgressBar/QProgressDialog类 .
- Qt学习——进度条QProgressBar/QProgressDialog类
- Qt中如何改变QProgressBar中进度条的颜色
- pyqt5 在别的窗口弹出进度条
- PyQt5
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- PyQt5:QSlider滑块、QLabel标签(25)
- Leetcode 83. Remove Duplicates from Sorted List 移除重复 链表版 解题报告
- 七. ubuntu更改主机名
- 提交Eclipse代码到Github
- PyQt5:QProgressBar进度条(26)
- Android lint 定制规则
- iOS快速开发框架--Bee Framework
- leetcode_c++:Unique Paths(062)
- 与 '\r' 字符的两次交锋
- PyQt5:QCalendarWidget日历部件(27)
- Leetcode no. 258
- 八. Linux 常用命令搜集
- Socket编程之非阻塞connect