Python高級進階#015 pyqt5進度條QProgressBar結合使用qbasictimer

本期GUI界面,咱們繼續學習新的控件Qprogressbar。
python

知識回顧web

1.滑動控件qslider編程

控件設置的關鍵:設置最大值、最小值,絕對範圍。ruby

2.核心類庫QtCore,枚舉類Qt微信

核心枚舉類的使用,能夠幫助咱們對代碼的理解。
app


1、進度條的使用思想
ide

進度條qprogressbar佈局

使用思想:學習

1.載入類庫spa

2.初始化類對象

3.設置最小值和最大值

4.時鐘的使用QBasicTimer,槽方法對應類庫的timerEvent

5.判斷何時中止加載進度條


這裏咱們在學習使用進度條的時候,必需要結合使用時鐘控件,這樣才能讓咱們看到進度條動的感受。


2、製做案例

說明以下:

1.界面由進度條和按鈕組成

2.進度條的值範圍爲0~100

3.按鈕的狀態爲「開始」、「中止」、「完成」

4..按鈕須要可以控制進度條的運行


3、開發過程知識點介紹

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("中止")


4、總結強調

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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索