最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python GUI庫(kù)圖形界面開發(fā)之PyQt5多線程中信號(hào)與槽的詳細(xì)使用方法與實(shí)例

 更新時(shí)間:2020年03月08日 14:05:59   作者:jia666666  
這篇文章主要介紹了python GUI庫(kù)圖形界面開發(fā)之PyQt5多線程中信號(hào)與槽的詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下

PyQt5簡(jiǎn)單多線程信號(hào)與槽的使用

最簡(jiǎn)單的多線程使用方法是利用QThread函數(shù),展示QThread函數(shù)和信號(hào)簡(jiǎn)單結(jié)合的方法

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class Main(QWidget):
  def __init__( self, parent=None ):
    super(Main, self).__init__(parent)
    #創(chuàng)建一個(gè)線程實(shí)例并設(shè)置名稱 變量 信號(hào)與槽
    self.thread = MyThread()
    self.thread.setIdentity('thread1')
    self.thread.sinOut.connect(self.outText)
    self.thread.setVal(6)
  #打印輸出文本
  def outText( self, text ):
    print(text)
class MyThread(QThread):
  #自定義信號(hào)參數(shù)為str類型
  sinOut = pyqtSignal(str)
  def __init__( self, parent=None ):
    super(MyThread, self).__init__(parent)
    #初始化名稱為空
    self.identity = None
  def setIdentity( self, text ):
    #設(shè)置多線程名稱
    self.identity=text
  def setVal( self, val ):
    #接受數(shù)據(jù),運(yùn)行多線程
    self.times = int(val)
    self.run()
  def run( self ):
    #當(dāng)次數(shù)大于0以及名稱不為空時(shí)執(zhí)行代碼
    while self.times>0 and self.identity:
      #發(fā)射信號(hào),觸發(fā)打印函數(shù),次數(shù)-1
      self.sinOut.emit(self.identity+'==>'+str(self.times))
      self.times-=1
if __name__ == '__main__':
  app=QApplication(sys.argv)
  main=Main()
  main.show()
  sys.exit(app.exec_())

運(yùn)行如下

主線程與子線程的使用

有時(shí)候在開發(fā)程序時(shí)會(huì)經(jīng)常執(zhí)行一些耗時(shí)的操作,這樣就會(huì)導(dǎo)致界面卡頓,這也是多線程的應(yīng)用范圍之一,這樣我們就可以創(chuàng)建多線程,使用主線程更新界面,使用子線程后臺(tái)處理數(shù)據(jù),最后將結(jié)果顯示在界面上

import sys,time
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class BackQthread(QThread):
  #自定義信號(hào)為str參數(shù)類型
  update_date=pyqtSignal(str)
  def run( self ):
    while True:
      #獲得當(dāng)前系統(tǒng)時(shí)間
      data=QDateTime.currentDateTime()
      #設(shè)置時(shí)間顯示格式
      curTime=data.toString('yyyy-MM-dd hh:mm:ss dddd')
      #發(fā)射信號(hào)
      self.update_date.emit(str(curTime))
      #睡眠一秒
      time.sleep(1)
class window(QDialog):
  def __init__(self):
    super(window, self).__init__()
    #設(shè)置標(biāo)題與初始大小
    self.setWindowTitle('PyQt5界面實(shí)時(shí)更新的例子')
    self.resize(400,100)
    #實(shí)例化文本輸入框及其初始大小
    self.input=QLineEdit(self)
    self.input.resize(400,100)
    self.initUI()
  def initUI( self ):
    #實(shí)例化對(duì)象
    self.backend=BackQthread()
    #信號(hào)連接到界面顯示槽函數(shù)
    self.backend.update_date.connect(self.handleDisplay)
    #多線程開始
    self.backend.start()
  def handleDisplay( self,data ):
    #設(shè)置單行文本框的文本
    self.input.setText(data)
if __name__ == '__main__':
  app=QApplication(sys.argv)
  win=window()
  win.show()
  sys.exit(app.exec_())

運(yùn)行程序,效果如下

本文主要講解了PyQt5多線程中信號(hào)與槽的詳細(xì)使用方法與實(shí)例,更多關(guān)于PyQt5信號(hào)與槽的知識(shí)請(qǐng)查看下面的相關(guān)鏈接

相關(guān)文章

  • python如何解析配置文件并應(yīng)用到項(xiàng)目中

    python如何解析配置文件并應(yīng)用到項(xiàng)目中

    這篇文章主要介紹了python如何解析配置文件并應(yīng)用到項(xiàng)目中,如果我們更換了電腦也可以繼續(xù)使用原來(lái)的文件,只要把里面的數(shù)據(jù)拷貝到游戲執(zhí)行的配置文件里面就可以了,我們重新再進(jìn)入就不用重新設(shè)置內(nèi)掛的配置了,需要的朋友可以參考下
    2019-06-06
  • python中的反斜杠問(wèn)題深入講解

    python中的反斜杠問(wèn)題深入講解

    這篇文章主要給大家介紹了關(guān)于python中反斜杠問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python Pillow(PIL)庫(kù)的用法詳解

    Python Pillow(PIL)庫(kù)的用法詳解

    這篇文章主要介紹了Python Pillow(PIL)庫(kù)的用法介紹,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 基于python修改srt字幕的時(shí)間軸

    基于python修改srt字幕的時(shí)間軸

    這篇文章主要介紹了基于python修改srt字幕的時(shí)間軸,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python連接PostgreSQL數(shù)據(jù)庫(kù)的方法

    Python連接PostgreSQL數(shù)據(jù)庫(kù)的方法

    大家應(yīng)該都有所了解,python可以操作多種數(shù)據(jù)庫(kù),諸如SQLite、MySql、PostgreSQL等,這里不對(duì)所有的數(shù)據(jù)庫(kù)操作方法進(jìn)行贅述,只針對(duì)目前項(xiàng)目中用到的PostgreSQL做一下簡(jiǎn)單介紹,主要是Python連接PostgreSQL數(shù)據(jù)庫(kù)的方法。有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-11-11
  • OpenCV半小時(shí)掌握基本操作之圖像處理

    OpenCV半小時(shí)掌握基本操作之圖像處理

    這篇文章主要介紹了OpenCV基本操作之圖像處理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • python使用append合并兩個(gè)數(shù)組的方法

    python使用append合并兩個(gè)數(shù)組的方法

    這篇文章主要介紹了python使用append合并兩個(gè)數(shù)組的方法,涉及Python中append方法的使用技巧,需要的朋友可以參考下
    2015-04-04
  • python的keyword模塊用法實(shí)例分析

    python的keyword模塊用法實(shí)例分析

    這篇文章主要介紹了python的keyword模塊用法,實(shí)例分析了Python中keyword模塊的基本使用技巧,需要的朋友可以參考下
    2015-06-06
  • 輕松掌握Python中的if和循環(huán)判斷技巧

    輕松掌握Python中的if和循環(huán)判斷技巧

    這篇文章主要介紹了輕松掌握Python中的if和循環(huán)判斷技巧的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • 基于opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng)(附demo)

    基于opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng)(附demo)

    人臉識(shí)別就是一個(gè)程序能識(shí)別給定圖像或視頻中的人臉,本文主要介紹了opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng),本文不涉及分類器、訓(xùn)練識(shí)別器等算法原理,感興趣的可以了解一下
    2021-11-11

最新評(píng)論

双牌县| 钦州市| 合山市| 确山县| 五台县| 兰西县| 南召县| 类乌齐县| 盐山县| 唐山市| 彭水| 依安县| 伊金霍洛旗| 那坡县| 米泉市| 潮州市| 紫云| 汤原县| 浪卡子县| 松滋市| 丹东市| 沾益县| 丽水市| 昭觉县| 西乌珠穆沁旗| 楚雄市| 汪清县| 沾益县| 扬州市| 金川县| 普洱| 萍乡市| 沙坪坝区| 沈丘县| 水富县| 广丰县| 仪陇县| 昌平区| 大安市| 临泉县| 闸北区|