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

PyQt5 QThread倒計(jì)時(shí)功能的實(shí)現(xiàn)代碼

 更新時(shí)間:2021年04月02日 10:31:00   作者:mtjmtj7啊  
這篇文章主要介紹了PyQt5 QThread倒計(jì)時(shí)功能的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.創(chuàng)建多線程類
全局變量 sec

class work_thread(QThread):
 timer = pyqtSignal() # 每隔一秒發(fā)送信號(hào)
 end = pyqtSignal() # 計(jì)數(shù)完成發(fā)送信號(hào)

 def run(self) -> None:
  while True:
   self.sleep(1)
   if sec == 0:
    self.end.emit() # 發(fā)送end信號(hào)
    break
   self.timer.emit()

2.實(shí)例化線程類,綁定計(jì)數(shù),技術(shù)結(jié)束事件

self.label.setText("20")
global sec
sec = 20
self.work_thread = work_thread()
self.work_thread.timer.connect(self.count_time)
self.work_thread.end.connect(self.end)

3.綁定開始按鈕事件

self.pushButton.clicked.connect(self.start)

4.事件方法

def count_time(self):
 global sec
 sec = int(self.label.text())
 sec -= 1
 self.label.setText(str(sec))

def end(self):
 self.statusbar.showMessage("計(jì)數(shù)停止")

def start(self):
 self.work_thread.start() # 啟動(dòng)線程

PS:知識(shí)點(diǎn)擴(kuò)展

PyQt5 倒計(jì)時(shí)按鈕功能實(shí)現(xiàn)

"""
這個(gè)例子中我們實(shí)現(xiàn)了兩個(gè)功能:菜單按鈕、帶倒計(jì)時(shí)的按鈕(賬戶注冊(cè)的時(shí)候經(jīng)常會(huì)碰到)。
"""
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QMenu
from PyQt5.QtCore import QTimer
import sys

class Example(QWidget):

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

  def initUI(self):

    self.resize(400,300)
    self.setWindowTitle('早點(diǎn)畢業(yè)吧--按鈕(QPushButton)')

    bt1 = QPushButton("這是什么",self)
    bt1.move(50,50)

    self.bt2 = QPushButton('發(fā)送驗(yàn)證碼',self)
    self.bt2.move(200,50)
    """
設(shè)置菜單按鈕其實(shí)很簡(jiǎn)單,首先我們新建一個(gè)QMenu對(duì)象。這里的addSeparator(),其實(shí)就是給菜單增加一個(gè)分隔符。
    """
    menu = QMenu(self)
    menu.addAction('我是')
    menu.addSeparator()
    menu.addAction('世界上')
    menu.addSeparator()
    menu.addAction('最帥的')

    bt1.setMenu(menu)#然后將這個(gè)菜單添加到QPushButton對(duì)象中
    """
第二個(gè)例子,我們使用到QTimer這個(gè)類,我們前面很多次都用到了這個(gè)和時(shí)間相關(guān)的類。后面會(huì)專門的講解的。
QTimer類提供重復(fù)性和單次定時(shí)器。QTimer類為定時(shí)器提供高級(jí)編程接口。要使用它,請(qǐng)創(chuàng)建一個(gè)QTimer,將其timeout()信號(hào)連接到相應(yīng)的插槽,然后調(diào)用start()。從此以后,它將以固定的時(shí)間間隔發(fā)出timeout()信號(hào)。
setInterval()該屬性擁有以毫秒為單位的超時(shí)時(shí)間間隔。此屬性的默認(rèn)值為0。 
    """

    self.count = 10
    self.bt2.clicked.connect(self.Action)
    self.time = QTimer(self)
    self.time.setInterval(1000)
    self.time.timeout.connect(self.Refresh)

    self.show()
    """
我們單擊按鈕后,進(jìn)行判斷若按鈕沒有被禁用,則激活定時(shí)器,同時(shí)將按鈕禁用,即禁止點(diǎn)擊。
    """
  def Action(self):
    if self.bt2.isEnabled():
      self.time.start()
      self.bt2.setEnabled(False)
    """
進(jìn)入超時(shí)狀態(tài)后,我們開始倒計(jì)時(shí)。同時(shí)讓按鈕上的文字不斷的在變化。
當(dāng)?shù)褂?jì)時(shí)完成的時(shí)候,我們停止定時(shí)器。將按鈕恢復(fù)成正常的狀態(tài)。同時(shí)重置倒計(jì)時(shí)的值,為下次的使用做好準(zhǔn)備。 
    """
  def Refresh(self):
    if self.count > 0:
      self.bt2.setText(str(self.count)+'秒后重發(fā)')
      self.count -= 1
    else:
      self.time.stop()
      self.bt2.setEnabled(True)
      self.bt2.setText('發(fā)送驗(yàn)證碼')
      self.count = 10

if __name__ == '__main__':
  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

到此這篇關(guān)于PyQt5 QThread倒計(jì)時(shí)的文章就介紹到這了,更多相關(guān)PyQt5 QThread倒計(jì)時(shí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)每天定時(shí)發(fā)送郵件的流程步驟

    python實(shí)現(xiàn)每天定時(shí)發(fā)送郵件的流程步驟

    這篇文章主要介紹了python實(shí)現(xiàn)每天定時(shí)發(fā)送郵件的流程步驟,要編寫一個(gè)用于自動(dòng)發(fā)送每日電子郵件報(bào)告的 Python 腳本,并配置它在每天的特定時(shí)間發(fā)送電子郵件,文中給大家介紹了詳細(xì)步驟和示例代碼,需要的朋友可以參考下
    2024-08-08
  • Python異步編程之新舊協(xié)程的實(shí)現(xiàn)對(duì)比

    Python異步編程之新舊協(xié)程的實(shí)現(xiàn)對(duì)比

    Python中新舊協(xié)程的實(shí)現(xiàn)方式在協(xié)程發(fā)展史上有一段交集,并且舊協(xié)程基于生成器的協(xié)程語法讓生成器和協(xié)程兩個(gè)概念混淆,所以對(duì)學(xué)習(xí)者會(huì)造成一定的困擾,本文主要說明兩種協(xié)程的實(shí)現(xiàn)方式的差異,需要的可以了解下
    2024-01-01
  • Python使用Turtle模塊繪制國旗的方法示例

    Python使用Turtle模塊繪制國旗的方法示例

    這篇文章主要給大家介紹了關(guān)于Python使用Turtle模塊繪制國旗的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • PyCharm最新激活碼PyCharm2020.2.3有效

    PyCharm最新激活碼PyCharm2020.2.3有效

    這篇文章為大家提供了PyCharm最新激活碼PyCharm2020.2.3有效,需要的朋友可以參考下
    2020-11-11
  • Python設(shè)置Socket代理及實(shí)現(xiàn)遠(yuǎn)程攝像頭控制的例子

    Python設(shè)置Socket代理及實(shí)現(xiàn)遠(yuǎn)程攝像頭控制的例子

    這篇文章主要介紹了Python設(shè)置Socket代理及實(shí)現(xiàn)遠(yuǎn)程攝像頭控制的例子,皆是對(duì)socket模塊的實(shí)際運(yùn)用,需要的朋友可以參考下
    2015-11-11
  • Python如何將兩個(gè)三維模型(obj)合成一個(gè)三維模型(obj)

    Python如何將兩個(gè)三維模型(obj)合成一個(gè)三維模型(obj)

    這篇文章主要介紹了Python如何將兩個(gè)三維模型(obj)合成一個(gè)三維模型(obj)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python標(biāo)準(zhǔn)庫calendar的使用方法

    Python標(biāo)準(zhǔn)庫calendar的使用方法

    本文主要介紹了Python標(biāo)準(zhǔn)庫calendar的使用方法,calendar模塊主要由Calendar類與一些模塊方法構(gòu)成,Calendar類又衍生了一些子孫類來幫助我們實(shí)現(xiàn)一些特殊的功能,感興趣的可以了解一下
    2021-11-11
  • 使用matlab讀取含表頭csv文件

    使用matlab讀取含表頭csv文件

    這篇文章主要介紹了使用matlab讀取含表頭csv文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • python簡(jiǎn)單實(shí)例訓(xùn)練(21~30)

    python簡(jiǎn)單實(shí)例訓(xùn)練(21~30)

    上篇文章給大家介紹了python簡(jiǎn)單實(shí)例訓(xùn)練的1-10,這里繼續(xù)為大家介紹python的一些用法,希望大家每個(gè)例子都打出來測(cè)試一下
    2017-11-11
  • 淺析Python中的變量賦值與多重賦值

    淺析Python中的變量賦值與多重賦值

    在?Python?中,變量賦值是編程中常見的操作之一,本文將深入探討?Python?中的變量賦值和多重賦值,包括其基本語法、特性、應(yīng)用場(chǎng)景以及示例代碼,需要的可以參考下
    2024-03-03

最新評(píng)論