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

python GUI庫圖形界面開發(fā)之PyQt5多線程中信號與槽的詳細使用方法與實例

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

PyQt5簡單多線程信號與槽的使用

最簡單的多線程使用方法是利用QThread函數(shù),展示QThread函數(shù)和信號簡單結(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)建一個線程實例并設(shè)置名稱 變量 信號與槽
    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):
  #自定義信號參數(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ù),運行多線程
    self.times = int(val)
    self.run()
  def run( self ):
    #當(dāng)次數(shù)大于0以及名稱不為空時執(zhí)行代碼
    while self.times>0 and self.identity:
      #發(fā)射信號,觸發(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_())

運行如下

主線程與子線程的使用

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

import sys,time
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class BackQthread(QThread):
  #自定義信號為str參數(shù)類型
  update_date=pyqtSignal(str)
  def run( self ):
    while True:
      #獲得當(dāng)前系統(tǒng)時間
      data=QDateTime.currentDateTime()
      #設(shè)置時間顯示格式
      curTime=data.toString('yyyy-MM-dd hh:mm:ss dddd')
      #發(fā)射信號
      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界面實時更新的例子')
    self.resize(400,100)
    #實例化文本輸入框及其初始大小
    self.input=QLineEdit(self)
    self.input.resize(400,100)
    self.initUI()
  def initUI( self ):
    #實例化對象
    self.backend=BackQthread()
    #信號連接到界面顯示槽函數(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_())

運行程序,效果如下

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

相關(guān)文章

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

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

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

    python中的反斜杠問題深入講解

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

    Python Pillow(PIL)庫的用法詳解

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

    基于python修改srt字幕的時間軸

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

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

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

    OpenCV半小時掌握基本操作之圖像處理

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

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

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

    python的keyword模塊用法實例分析

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

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

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

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

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

最新評論

高雄县| 广河县| 右玉县| 视频| 页游| 新河县| 合江县| 丰都县| 章丘市| 普兰县| 中宁县| 凤阳县| 宁国市| 永吉县| 林甸县| 沅陵县| 改则县| 平遥县| 西丰县| 娱乐| 庆云县| 枣庄市| 平舆县| 疏勒县| 新河县| 竹北市| 宿松县| 马鞍山市| 卓尼县| 昌江| 双桥区| 墨竹工卡县| 新巴尔虎左旗| 荆门市| 平塘县| 黄梅县| 大姚县| 宁化县| 揭东县| 林西县| 沂南县|