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

Python+PyQT5的子線程更新UI界面的實(shí)例

 更新時(shí)間:2019年06月14日 20:48:51   作者:五千年前的后羿  
今天小編就為大家分享一篇Python+PyQT5的子線程更新UI界面的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧

子線程里是不能更新UI界面的,在移動(dòng)端方面。Android的UI訪問是沒有加鎖的,多個(gè)線程可以同時(shí)訪問更新操作同一個(gè)UI控件。也就是說(shuō)訪問UI的時(shí)候,android系統(tǒng)當(dāng)中的控件都不是線程安全的,這將導(dǎo)致在多線程模式下,當(dāng)多個(gè)線程共同訪問更新操作同一個(gè)UI控件時(shí)容易發(fā)生不可控的錯(cuò)誤。所以Android中規(guī)定只能在UI線程中訪問UI,相當(dāng)于從另一個(gè)角度給Android的UI訪問加上鎖,一個(gè)偽鎖。

在PyQT5中使用QThread

from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import time
 
#繼承QThread
 
class Mythread(QThread):
  # 定義信號(hào),定義參數(shù)為str類型
  breakSignal = pyqtSignal(int)
 
  def __init__(self, parent=None):
    super().__init__(parent)
    # 下面的初始化方法都可以,有的python版本不支持
    # super(Mythread, self).__init__()
 
  def run(self):
      #要定義的行為,比如開始一個(gè)活動(dòng)什么的
 
      for i in(1,1000):
 
        print(i)
        self.breakSignal.emit(i)
      
 
 
if __name__ == '__main__':
  app = QApplication([])
  dlg = QDialog()
  dlg.resize(400, 300)
  dlg.setWindowTitle("自定義按鈕測(cè)試")
  dlgLayout = QVBoxLayout()
  dlgLayout.setContentsMargins(40, 40, 40, 40)
  btn = QPushButton('測(cè)試按鈕')
  dlgLayout.addWidget(btn)
  dlgLayout.addStretch(40)
  dlg.setLayout(dlgLayout)
  dlg.show()
 
 
  def chuli(a):
    # dlg.setWindowTitle(s)
    btn.setText(str(a))
 
  # 創(chuàng)建線程
  thread = Mythread()
  # # 注冊(cè)信號(hào)處理函數(shù)
  thread.breakSignal.connect(chuli)
  # # 啟動(dòng)線程
  thread.start()
  dlg.exec_()
  app.exit()

在python中刷新UI可以類似,采用消息傳遞的機(jī)制。

可以在子線程中修改主線程的變量,主線程讀取變量并繪制的方式。

以上這篇Python+PyQT5的子線程更新UI界面的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中使用mysql數(shù)據(jù)庫(kù)詳細(xì)介紹

    python中使用mysql數(shù)據(jù)庫(kù)詳細(xì)介紹

    這篇文章主要介紹了python中使用mysql數(shù)據(jù)庫(kù)詳細(xì)介紹,本文起講解了安裝mysql、安裝MySQL-python、mysql 的基本操作、python 操作mysql數(shù)據(jù)庫(kù)基礎(chǔ)等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 詳解python運(yùn)行三種方式

    詳解python運(yùn)行三種方式

    這篇文章主要介紹了python運(yùn)行三種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python讀寫文件模式和文件對(duì)象方法實(shí)例詳解

    Python讀寫文件模式和文件對(duì)象方法實(shí)例詳解

    這篇文章主要介紹了Python讀寫文件模式和文件對(duì)象方法,結(jié)合實(shí)例形式詳細(xì)分析了Python文件操作常用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • Python爬取京東的商品分類與鏈接

    Python爬取京東的商品分類與鏈接

    這篇文章主要介紹利用python爬取京東商品分類以及對(duì)應(yīng)的連接,這個(gè)功能不是很復(fù)雜,沒有爬取里面的隱藏的東西。算是給新手一個(gè)示例教程吧,有需要的可以參考借鑒。
    2016-08-08
  • python監(jiān)控進(jìn)程狀態(tài),記錄重啟時(shí)間及進(jìn)程號(hào)的實(shí)例

    python監(jiān)控進(jìn)程狀態(tài),記錄重啟時(shí)間及進(jìn)程號(hào)的實(shí)例

    今天小編就為大家分享一篇python監(jiān)控進(jìn)程狀態(tài),記錄重啟時(shí)間及進(jìn)程號(hào)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-07-07
  • 基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的古詩(shī)生成器

    基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的古詩(shī)生成器

    這篇文章主要為大家詳細(xì)介紹了基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的古詩(shī)生成器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python中Switch/Case實(shí)現(xiàn)的示例代碼

    python中Switch/Case實(shí)現(xiàn)的示例代碼

    本篇文章主要介紹了python中Switch/Case實(shí)現(xiàn)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-11-11
  • 使用python如何對(duì)圖片進(jìn)行壓縮

    使用python如何對(duì)圖片進(jìn)行壓縮

    這篇文章主要介紹了使用python如何對(duì)圖片進(jìn)行壓縮,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python 爬蟲批量爬取網(wǎng)頁(yè)圖片保存到本地的實(shí)現(xiàn)代碼

    Python 爬蟲批量爬取網(wǎng)頁(yè)圖片保存到本地的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python 爬蟲批量爬取網(wǎng)頁(yè)圖片保存到本地,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Python 微信公眾號(hào)文章爬取的示例代碼

    Python 微信公眾號(hào)文章爬取的示例代碼

    這篇文章主要介紹了Python 微信公眾號(hào)文章爬取的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評(píng)論