欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PyQt5每天必學(xué)之進(jìn)度條效果

 更新時(shí)間:2021年10月08日 16:02:24   作者:我的世界你曾經(jīng)來(lái)過(guò)  
這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

進(jìn)度條是,當(dāng)我們處理冗長(zhǎng)的任務(wù)時(shí)使用的控件。它是以動(dòng)畫的形式讓用戶知道該任務(wù)正在取得進(jìn)展。該QProgressBar控件提供一個(gè)水平或垂直進(jìn)度條。程序員可以設(shè)置進(jìn)度條的最小值和最大值。默認(rèn)值是0到99。

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

"""
PyQt5 教程

這個(gè)例子顯示了一個(gè)進(jìn)度條控件。

作者:我的世界你曾經(jīng)來(lái)過(guò)
博客: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('進(jìn)度條')  
  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_())

在我們的例子,我們有一個(gè)水平進(jìn)度條控件和一個(gè)按鈕控件。點(diǎn)擊按鈕啟動(dòng)或停止進(jìn)度條。

self.pbar = QProgressBar(self)

使用 QProgressBar 創(chuàng)建進(jìn)度條

self.timer = QBasicTimer()

激活進(jìn)度條,我們需使用一個(gè)計(jì)時(shí)器對(duì)象。

self.timer.start(100, self)

要啟動(dòng)定時(shí)器事件,我們需調(diào)用它的start()方法。這種方法有兩個(gè)參數(shù):超時(shí)和將接收的事件的對(duì)象。

 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)

每個(gè)繼承自QObject 的對(duì)象都有一個(gè)timerEvent()事件處理程序。為了定時(shí)器事件作用到進(jìn)度條,我們重寫了這個(gè)事件處理程序。

 def doAction(self, value):

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

使用 doAction() 方法啟動(dòng)和停止計(jì)時(shí)器。

程序執(zhí)行后

這里寫圖片描述 這里寫圖片描述 這里寫圖片描述

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論