首頁 > 後端開發 > Python教學 > PyQt5每天必學之進度條效果

PyQt5每天必學之進度條效果

不言
發布: 2018-04-19 10:55:10
原創
5498 人瀏覽過

這篇文章主要為大家詳細介紹了PyQt5實現進度條效果,具有一定的參考價值,有興趣的小夥伴們可以參考一下

進度條是,當我們處理冗長的任務時使用的控制項。它是以動畫的形式讓用戶知道該任務正在取得進展。此QProgressBar控制提供一個水平或垂直進度條。程式設計師可以設定進度條的最小值和最大值。預設值是0到99。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

这个例子显示了一个进度条控件。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年8月3日
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton
from PyQt5.QtCore import QBasicTimer

class Example(QWidget):

 def __init__(self):
  super().__init__()

  self.initUI()

 def initUI(self):

  self.pbar = QProgressBar(self)
  self.pbar.setGeometry(30, 40, 200, 25)

  self.btn = QPushButton('开始', self)
  self.btn.move(40, 80)
  self.btn.clicked.connect(self.doAction)

  self.timer = QBasicTimer()
  self.step = 0

  self.setGeometry(300, 300, 280, 170)
  self.setWindowTitle('进度条')  
  self.show()

 def timerEvent(self, e):

  if self.step >= 100:
   self.timer.stop()
   self.btn.setText('完成')
   return
  self.step = self.step+1
  self.pbar.setValue(self.step)

 def doAction(self, value):

  if self.timer.isActive():
   self.timer.stop()
   self.btn.setText('开始')
  else:
   self.timer.start(100, self)
   self.btn.setText('停止')

if __name__ == '__main__':

 app = QApplication(sys.argv)
 ex = Example()
 sys.exit(app.exec_())
登入後複製

在我們的例子,我們有一個水平進度條控制項和一個按鈕控制項。點擊按鈕啟動或停止進度條。

self.pbar = QProgressBar(self)
登入後複製

使用QProgressBar 建立進度條

self.timer = QBasicTimer()
登入後複製

啟動進度條,我們需使用一個計時器物件。

self.timer.start(100, self)
登入後複製

要啟動計時器事件,我們需呼叫它的start()方法。這種方法有兩個參數:逾時和將接收的事件的物件。

 def timerEvent(self, e):

  if self.step >= 100:
   self.timer.stop()
   self.btn.setText('完成')
   return
  self.step = self.step+1
  self.pbar.setValue(self.step)
登入後複製

每個繼承自QObject 的物件都有一個timerEvent()事件處理程序。為了定時器事件作用到進度條,我們重寫了這個事件處理程序。

 def doAction(self, value):

  if self.timer.isActive():
   self.timer.stop()
   self.btn.setText('开始')
  else:
   self.timer.start(100, self)
   self.btn.setText('停止')
登入後複製

使用 doAction() 方法啟動和停止計時器。

程式執行後

PyQt5每天必學之進度條效果PyQt5每天必學之進度條效果PyQt5每天必學之進度條效果

#相關推薦:

PyQt5每天必學之QSplitter實作視窗分隔

PyQt5每天必學之工具提示功能

##

以上是PyQt5每天必學之進度條效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板