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

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

知识回顾



1.滑动控件qslider

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

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

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


一、进度条的使用思想



进度条qprogressbar

使用思想:

1.载入类库

2.初始化类对象

3.设置最小值和最大值

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

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


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


二、制作案例



image.png

说明如下:

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 sys
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QProgressBar
from 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_()
相关文章
|
11天前
|
开发者 Python
Python进阶:深入剖析闭包与装饰器的应用与技巧
Python进阶:深入剖析闭包与装饰器的应用与技巧
|
11天前
|
分布式计算 算法 Python
Python函数进阶:四大高阶函数、匿名函数、枚举、拉链与递归详解
Python函数进阶:四大高阶函数、匿名函数、枚举、拉链与递归详解
|
11天前
|
Python
Python面向对象进阶:深入解析面向对象三要素——封装、继承与多态
Python面向对象进阶:深入解析面向对象三要素——封装、继承与多态
|
11天前
|
Java Python
Python进阶之旅:深入理解变量作用域、垃圾回收、拷贝机制与异常处理
Python进阶之旅:深入理解变量作用域、垃圾回收、拷贝机制与异常处理
|
16天前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
16天前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
18天前
|
存储 索引 Python
Python教程:深入了解 Python 中 Dict、List、Tuple、Set 的高级用法
Python 中的 Dict(字典)、List(列表)、Tuple(元组)和 Set(集合)是常用的数据结构,它们各自有着不同的特性和用途。在本文中,我们将深入了解这些数据结构的高级用法,并提供详细的说明和代码示例。
16 2
|
19天前
|
SQL 关系型数据库 MySQL
Python进阶第二篇(Python与MySQL数据库)
Python进阶第二篇(Python与MySQL数据库)
|
4天前
|
人工智能 Linux 开发工具
|
4天前
|
数据可视化 定位技术 API