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

python之線程通過信號(hào)pyqtSignal刷新ui的方法

 更新時(shí)間:2019年01月11日 10:20:37   作者:yungcs_  
今天小編就為大家分享一篇python之線程通過信號(hào)pyqtSignal刷新ui的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

第一部分:UI界面設(shè)計(jì)

界面效果圖如下:

python之線程通過信號(hào)pyqtSignal刷新ui

ui文件(可拉動(dòng)控件自行創(chuàng)建一個(gè)button和text)

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Dialog</class>
 <widget class="QDialog" name="Dialog">
 <property name="geometry">
  <rect>
  <x>0</x>
  <y>0</y>
  <width>585</width>
  <height>394</height>
  </rect>
 </property>
 <property name="windowTitle">
  <string>Dialog</string>
 </property>
 <widget class="QPushButton" name="pushButton">
  <property name="geometry">
  <rect>
   <x>230</x>
   <y>320</y>
   <width>75</width>
   <height>23</height>
  </rect>
  </property>
  <property name="text">
  <string>timer_click</string>
  </property>
 </widget>
 <widget class="QTextEdit" name="textEdit">
  <property name="geometry">
  <rect>
   <x>70</x>
   <y>30</y>
   <width>441</width>
   <height>231</height>
  </rect>
  </property>
 </widget>
 </widget>
 <resources/>
 <connections>
 <connection>
  <sender>pushButton</sender>
  <signal>clicked()</signal>
  <receiver>Dialog</receiver>
  <slot>timer_click()</slot>
  <hints>
  <hint type="sourcelabel">
   <x>217</x>
   <y>229</y>
  </hint>
  <hint type="destinationlabel">
   <x>250</x>
   <y>241</y>
  </hint>
  </hints>
 </connection>
 </connections>
 <slots>
 <slot>timer_click()</slot>
 </slots>
</ui>

生成的py文件

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'TEST_QT_FROM.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
  def setupUi(self, Dialog):
    Dialog.setObjectName("Dialog")
    Dialog.resize(585, 394)
    self.pushButton = QtWidgets.QPushButton(Dialog)
    self.pushButton.setGeometry(QtCore.QRect(230, 320, 75, 23))
    self.pushButton.setObjectName("pushButton")
    self.textEdit = QtWidgets.QTextEdit(Dialog)
    self.textEdit.setGeometry(QtCore.QRect(70, 30, 441, 231))
    self.textEdit.setObjectName("textEdit")

    self.retranslateUi(Dialog)
    self.pushButton.clicked.connect(Dialog.timer_click)
    QtCore.QMetaObject.connectSlotsByName(Dialog)

  def retranslateUi(self, Dialog):
    _translate = QtCore.QCoreApplication.translate
    Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
    self.pushButton.setText(_translate("Dialog", "timer_click"))


第二部分:主要邏輯代碼

from PyQt5 import QtWidgets, QtCore
from testqt.TEST_QT_FROM import Ui_Dialog
import sys
from PyQt5.QtCore import *
import time


# 繼承QThread
class Runthread(QtCore.QThread):
  # python3,pyqt5與之前的版本有些不一樣
  # 通過類成員對(duì)象定義信號(hào)對(duì)象
  _signal = pyqtSignal(str)

  def __init__(self):
    super(Runthread, self).__init__()

  def __del__(self):
    self.wait()

  def run(self):
    print("run 666")
    self._signal.emit("run 666"); # 信號(hào)發(fā)送



class TestQtFromC(QtWidgets.QWidget, Ui_Dialog):
  text =""
  def __init__(self):
    super(TestQtFromC, self).__init__()
    self.setupUi(self)

  #click
  def timer_click(self):
    self.thread = Runthread() # 創(chuàng)建線程
    self.thread._signal.connect(self.callbacklog) # 連接信號(hào)
    self.thread.start() # 開始線程

  # callback
  def callbacklog(self, msg):
    self.text =self.text+time.strftime("%Y-%m-%d %H:%M:%S ", time.localtime())+msg+ "\n"
    print(self.text)
    # 回調(diào)數(shù)據(jù)輸出到文本框
    self.textEdit.setText(self.text);


if __name__ == "__main__":
  app = QtWidgets.QApplication(sys.argv)
  mTestQtFromC = TestQtFromC()
  mTestQtFromC.show()
  sys.exit(app.exec_())

第三部分:運(yùn)行效果圖

點(diǎn)擊click就可刷新界面了

python之線程通過信號(hào)pyqtSignal刷新ui

以上這篇python之線程通過信號(hào)pyqtSignal刷新ui的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python使用ChainMap實(shí)現(xiàn)組合數(shù)據(jù)魔法實(shí)例探究

    Python使用ChainMap實(shí)現(xiàn)組合數(shù)據(jù)魔法實(shí)例探究

    這篇文章主要為大家介紹了Python使用ChainMap實(shí)現(xiàn)組合數(shù)據(jù)魔法實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • yolov5中head修改為decouple?head詳解

    yolov5中head修改為decouple?head詳解

    現(xiàn)成的YOLOv5代碼真的很香,不管口碑怎么樣,我用著反正是挺爽的,下面這篇文章主要給大家介紹了關(guān)于yolov5中head修改為decouple?head的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Python利用pywin32庫實(shí)現(xiàn)將PPT導(dǎo)出為高清圖片

    Python利用pywin32庫實(shí)現(xiàn)將PPT導(dǎo)出為高清圖片

    這篇文章主要為大家詳細(xì)介紹了Python如何利用pywin32庫實(shí)現(xiàn)將PPT導(dǎo)出為高清圖片的功能,文中的示例代講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-01-01
  • python獲取局域網(wǎng)占帶寬最大3個(gè)ip的方法

    python獲取局域網(wǎng)占帶寬最大3個(gè)ip的方法

    這篇文章主要介紹了python獲取局域網(wǎng)占帶寬最大3個(gè)ip的方法,涉及Python解析URL參數(shù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Python圖像處理之顏色的定義與使用分析

    Python圖像處理之顏色的定義與使用分析

    這篇文章主要介紹了Python圖像處理之顏色的定義與使用,結(jié)合實(shí)例形式分析了matplotlib模塊中顏色值的相關(guān)使用操作技巧,需要的朋友可以參考下
    2019-01-01
  • Python中文件遍歷的兩種方法

    Python中文件遍歷的兩種方法

    這篇文章主要介紹了Python中文件遍歷的兩種方法,使用的OS模塊的os.walk和os.listdir實(shí)現(xiàn),需要的朋友可以參考下
    2014-06-06
  • Python中的pandas模塊詳解

    Python中的pandas模塊詳解

    在Python中使用pandas模塊,需要先安裝pandas庫,pandas模塊是Python編程語言中用于數(shù)據(jù)處理和分析的強(qiáng)大模塊,它提供了許多用于數(shù)據(jù)操作和清洗的函數(shù),使得數(shù)據(jù)處理和分析變得更為簡單和直觀,本文給大家介紹Python pandas模塊,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Flask實(shí)現(xiàn)異步執(zhí)行任務(wù)

    Flask實(shí)現(xiàn)異步執(zhí)行任務(wù)

    在一些開發(fā)中,可能會(huì)遇到需要長時(shí)間處理的任務(wù),此時(shí)就需要使用異步的方式來實(shí)現(xiàn),本文就介紹了Flask實(shí)現(xiàn)異步執(zhí)行任務(wù)的方法,感興趣的可以了解一下
    2021-05-05
  • python生成1行四列全2矩陣的方法

    python生成1行四列全2矩陣的方法

    今天小編就為大家分享一篇python生成1行四列全2矩陣的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表

    使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表

    使用Python從Excel讀取數(shù)據(jù)并在PowerPoint幻燈片中創(chuàng)建圖表不僅能夠極大地簡化圖表創(chuàng)建過程,通過Python這一橋梁,我們可以輕松實(shí)現(xiàn)數(shù)據(jù)自動(dòng)化處理和圖表生成,本文將演示如何使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表,需要的朋友可以參考下
    2024-08-08

最新評(píng)論