Python高级进阶#015 pyqt5进度条QProgressBar结合使用qbasictimer

故事扮演 提交于 2021-02-13 05:03:44

本期GUI界面,我们继续学习新的控件Qprogressbar。

知识回顾

1.滑动控件qslider

控件设置的关键:设置最大值、最小值,绝对范围。

2.核心类库QtCore,枚举类Qt

核心枚举类的使用,可以帮助我们对代码的理解。


一、进度条的使用思想

进度条qprogressbar

使用思想:

1.载入类库

2.初始化类对象

3.设置最小值和最大值

4.时钟的使用QBasicTimer,槽方法对应类库的timerEvent

5.判断什么时候停止加载进度条


这里我们在学习使用进度条的时候,必须要结合使用时钟控件,这样才能让我们看到进度条动的感觉。


二、制作案例

说明如下:

1.界面由进度条和按钮组成

2.进度条的值范围为0~100

3.按钮的状态为“开始”、“停止”、“完成”

4..按钮需要能够控制进度条的运行


三、开发过程知识点介绍

1.导入时钟类

from PyQt5.QtCore import QBasicTimer


2.初始化进度条

self.pgb=QProgressBar(self)  类对象的初始化

        self.pgb.move(50,50)   将进度条移动到指定位置

        self.pgb.resize(300,20)   设置进度条宽高


3.设置进度条的范围

#设置进度条的范围

        self.pgb.setMinimum(0)

        self.pgb.setMaximum(100)

        self.pgb.setValue(50)   设置当前进度


4.时钟控件

作用:每隔多少时间执行一次时钟内部的代码。

时间单位为:毫秒

1秒=1000毫秒


QBasicTimer控件解析

  • isActive方法:返回时钟控件是否开启。如果开启返回true,否则为false

  • Start方法:使得时钟控件开启来。需要传入时间间隔,时间单位为毫秒。

简单的参数使用格式:

Start(时间,self)


Stop方法:使得时钟控件关闭。

timerId方法:返回当前时钟控件的ID,表示某个时钟控件。这个主要用于多个时钟控件使用的时候,区分不同的时钟控件。


5.时钟控件的事件重写

对应的槽方法是Qwidget控件自带的timerEvent事件。
时钟控件的每个多少时间要运行一次的代码就是在timerEvent方法中,我们在使用时钟控件的时候要重写这个方法。


时钟控件状态切换的核心代码:

 if self.timer1.isActive():  检测是否开启

          self.timer1.stop()

          self.btn.setText(“开始”)   这里的按钮的状态显示的是下一次的行为

else:

           self.timer1.start(100, self)

           self.btn.setText("停止")


四、总结强调

1.掌握Qprogressbar的控件的配置

2.掌握时钟控件的基本使用QBasicTimer

3.理解按钮控制时钟控件达到进度条的运行的思想。


本节知识源代码:

import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QProgressBarfrom PyQt5.QtCore import QBasicTimer
class MyClass(QWidget): def __init__(self): super(MyClass, self).__init__() self.initUI() def initUI(self): self.setWindowTitle("刘金玉编程") self.setGeometry(300,100,400,300) #载入进度条控件 self.pgb=QProgressBar(self) self.pgb.move(50,50) self.pgb.resize(300,20)
#配置一个值表示进度条的当前进度 self.pv=0
#申明一个时钟控件 self.timer1=QBasicTimer()
#设置进度条的范围 self.pgb.setMinimum(0) self.pgb.setMaximum(100) self.pgb.setValue(self.pv) #载入按钮 self.btn=QPushButton("开始",self) self.btn.move(50,100) self.btn.clicked.connect(self.myTimerState) self.show()
def myTimerState(self): if self.timer1.isActive(): self.timer1.stop() self.btn.setText("开始") else: self.timer1.start(100, self) self.btn.setText("停止")
def timerEvent(self,e): if self.pv==100: self.timer1.stop() self.btn.setText("完成") else: self.pv+=1 self.pgb.setValue(self.pv)
if __name__=="__main__": app=QApplication(sys.argv) mc=MyClass() app.exec_()

长按关注公众号

相关文章:

  1. python高级进阶#001可视化界面开发环境搭建

  2. python高级进阶#002第一个pyqt5程序

  3. Python高级进阶#003 pyqt5与qtdesigner对照分析

  4. Python高级进阶#004 pyqt5设置窗体图标

  5. Python高级进阶#005 pyqt5显示提示框

  6. Python高级进阶#006 pyqt5类封装

  7. Python高级进阶#007 pyqt5消息盒子QMessageBox

  8. Python高级进阶#008 pyqt5窗体居中和布局

  9. Python高级进阶#009 pyqt5中窗体的绝对布局和相对布局

  10. Python高级进阶#010 pyqt5网格布局QGridLayout

  11. Python高级进阶#011 pyqt5按钮QPushButton应用

  12. Python高级进阶#012 pyqt5 QLineEdit文本事件应用

  13. Python高级进阶#013 pyqt5复选框QCheckBox

  14. Python高级进阶#014 pyqt5滑块控件QSlider应用


本文分享自微信公众号 - 编程创造城市(bcczcs)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!