python进度条 pyqt_Python高级进阶#015 pyqt5进度条QProgressBar结合使用qbasictimer
本期GUI界面,我們繼續(xù)學(xué)習(xí)新的控件Qprogressbar。
知識回顧
1.滑動控件qslider
控件設(shè)置的關(guān)鍵:設(shè)置最大值、最小值,絕對范圍。
2.核心類庫QtCore,枚舉類Qt
核心枚舉類的使用,可以幫助我們對代碼的理解。
一、進(jìn)度條的使用思想
進(jìn)度條qprogressbar
使用思想:
1.載入類庫
2.初始化類對象
3.設(shè)置最小值和最大值
4.時(shí)鐘的使用QBasicTimer,槽方法對應(yīng)類庫的timerEvent
5.判斷什么時(shí)候停止加載進(jìn)度條
這里我們在學(xué)習(xí)使用進(jìn)度條的時(shí)候,必須要結(jié)合使用時(shí)鐘控件,這樣才能讓我們看到進(jìn)度條動的感覺。
二、制作案例
說明如下:
1.界面由進(jìn)度條和按鈕組成
2.進(jìn)度條的值范圍為0~100
3.按鈕的狀態(tài)為“開始”、“停止”、“完成”
4..按鈕需要能夠控制進(jìn)度條的運(yùn)行
三、開發(fā)過程知識點(diǎn)介紹
1.導(dǎo)入時(shí)鐘類
from PyQt5.QtCore import QBasicTimer
2.初始化進(jìn)度條
self.pgb=QProgressBar(self)? 類對象的初始化
self.pgb.move(50,50)? ?將進(jìn)度條移動到指定位置
self.pgb.resize(300,20)? ?設(shè)置進(jìn)度條寬高
3.設(shè)置進(jìn)度條的范圍
#設(shè)置進(jìn)度條的范圍
self.pgb.setMinimum(0)
self.pgb.setMaximum(100)
self.pgb.setValue(50)? ?設(shè)置當(dāng)前進(jìn)度
4.時(shí)鐘控件
作用:每隔多少時(shí)間執(zhí)行一次時(shí)鐘內(nèi)部的代碼。
時(shí)間單位為:毫秒
1秒=1000毫秒
QBasicTimer控件解析
isActive方法:返回時(shí)鐘控件是否開啟。如果開啟返回true,否則為false
Start方法:使得時(shí)鐘控件開啟來。需要傳入時(shí)間間隔,時(shí)間單位為毫秒。
簡單的參數(shù)使用格式:
Start(時(shí)間,self)
Stop方法:使得時(shí)鐘控件關(guān)閉。
timerId方法:返回當(dāng)前時(shí)鐘控件的ID,表示某個(gè)時(shí)鐘控件。這個(gè)主要用于多個(gè)時(shí)鐘控件使用的時(shí)候,區(qū)分不同的時(shí)鐘控件。
5.時(shí)鐘控件的事件重寫
對應(yīng)的槽方法是Qwidget控件自帶的timerEvent事件。
時(shí)鐘控件的每個(gè)多少時(shí)間要運(yùn)行一次的代碼就是在timerEvent方法中,我們在使用時(shí)鐘控件的時(shí)候要重寫這個(gè)方法。
時(shí)鐘控件狀態(tài)切換的核心代碼:
if self.timer1.isActive():? 檢測是否開啟
self.timer1.stop()
self.btn.setText(“開始”)? ?這里的按鈕的狀態(tài)顯示的是下一次的行為
else:
self.timer1.start(100, self)
self.btn.setText("停止")
四、總結(jié)強(qiáng)調(diào)
1.掌握Qprogressbar的控件的配置
2.掌握時(shí)鐘控件的基本使用QBasicTimer
3.理解按鈕控制時(shí)鐘控件達(dá)到進(jìn)度條的運(yùn)行的思想。
本節(jié)知識源代碼:
import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QPushButton,QProgressBarfrom PyQt5.QtCore import QBasicTimerclass MyClass(QWidget):def __init__(self):super(MyClass, self).__init__()self.initUI()def initUI(self):self.setWindowTitle("劉金玉編程")self.setGeometry(300,100,400,300)#載入進(jìn)度條控件self.pgb=QProgressBar(self)self.pgb.move(50,50)self.pgb.resize(300,20)#配置一個(gè)值表示進(jìn)度條的當(dāng)前進(jìn)度self.pv=0#申明一個(gè)時(shí)鐘控件self.timer1=QBasicTimer()#設(shè)置進(jìn)度條的范圍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+=1self.pgb.setValue(self.pv)if __name__=="__main__":app=QApplication(sys.argv)mc=MyClass()app.exec_()
長按關(guān)注公眾號
相關(guān)文章:
總結(jié)
以上是生活随笔為你收集整理的python进度条 pyqt_Python高级进阶#015 pyqt5进度条QProgressBar结合使用qbasictimer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: office上下滑动滚轮特别卡_滚轮及部
- 下一篇: 上如何刻字_校园石阶上被人刻了1700多