Python3和pyqt5实现控件数据动态显示方式


Posted in Python onDecember 13, 2019

最近笔者在做一个pyqt5的界面,由于在日常生活中,一些实际运用的场合都需要对数据进行实时的刷新,例如对某个数值的监控,水温,室温的监控等等,都需要实时的刷新控件显示的数据。

对于实现这样的一种功能,pyqt5在面板生成的同时就固定住了UI中的数据,例如我们产生一个QLineEdit控件,然后布局在面板上,但是控件中的数据是固定的,如果这个数据是实时更新的,想要改变空间中的数据时,就要去刷新面板,pyqt5提供了一个QApplication.processEvents()的命令来刷新整个面板,但是要完成数据的动态显示,则要不断的去调用这个函数来刷新面板,同样,以使用多线程去刷新面板上的数据,但是通过搜索各种大佬的博客等,发现了pyqt5多线程刷新的各种问题,即大佬主要使用多线程来对控件显示的数据进行实时的刷新。 本文旨在演示一种使用定时器来刷新控件实现数据的方法,具体代码如下:

import sys
import random
import numpy as np
from time import sleep
import datetime
from PyQt5 import QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

定义数据生成线程,该线程主要目的是不断生成随机数,用来模拟不断采集数据

class WorkThread(QThread):
  # 初始化线程
  def __int__(self):
    super(WorkThread, self).__init__()
  #线程运行函数
  def run(self):
    while True:
      global T_value
      global P_value
      T_value = random.randint(200,225)
      P_value = random.randint(150,200)
      print(T_value, P_value)
      sleep(3)

定义显示面板

class plotwindows(QtWidgets.QWidget):
  def __init__(self):
    super(plotwindows,self).__init__()
    layout = QFormLayout()
    self.edita3 = QLineEdit()
    self.edita4 = QLineEdit()
    self.edita5 = QLineEdit()
    layout.addRow("A数值", self.edita3)
    layout.addRow("B数值", self.edita4)
    layout.addRow("C数值", self.edita5)
    self.setLayout(layout)
    self.Mytimer()

定义定时器,使用定时器每隔一段时间来出发update函数,从而刷新数据

def Mytimer(self):
  timer = QTimer(self)
  timer.timeout.connect(self.update)
  timer.start(100)

刷新函数

def update(self):
  self.edita3.setText(str(T_value))
  self.edita4.setText(str(P_value))
  global SUM_value
  SUM_value = T_value + P_value
  self.edita5.setText(str(SUM_value))

def mainwindows():
  app =QtWidgets.QApplication(sys.argv)
  new = plotwindows()
  new.show()
  sys.exit(app.exec_())

if __name__ == "__main__":
  workThread = WorkThread()
  workThread.start()
  mainwindows()

Python3和pyqt5实现控件数据动态显示方式

Python3和pyqt5实现控件数据动态显示方式

可以看到,子线程不断的生成数据,同时定时器以一种不断调用刷新函数的方法来实现对控件显示数据的刷新,这样就不用再建立新线程的情况下实现刷新控件显示的功能。

以上这篇Python3和pyqt5实现控件数据动态显示方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3.0 字典key排序
Dec 24 Python
python正则分析nginx的访问日志
Jan 17 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
浅谈flask源码之请求过程
Jul 26 Python
对python产生随机的二维数组实例详解
Dec 13 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
Apr 09 Python
flask 实现token机制的示例代码
Nov 07 Python
python通过文本在一个图中画多条线的实例
Feb 21 Python
Python 去除字符串中指定字符串
Mar 05 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
Java多线程实现四种方式原理详解
Jun 02 Python
教你怎么用python爬取爱奇艺热门电影
May 20 Python
python实现简单日志记录库glog的使用
Dec 13 #Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 #Python
Python3将jpg转为pdf文件的方法示例
Dec 13 #Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 #Python
PyQt5多线程刷新界面防假死示例
Dec 13 #Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 #Python
python-web根据元素属性进行定位的方法
Dec 13 #Python
You might like
简单谈谈 php 文件锁
2017/02/19 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
Jquery cookie操作代码
2010/03/14 Javascript
Js sort排序使用方法
2011/10/17 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
python让列表倒序输出的实例
2018/06/25 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
python将字母转化为数字实例方法
2019/10/04 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
CSS3的颜色渐变效果的示例代码
2017/09/29 HTML / CSS
送给程序员的20个Java集合面试问题
2014/08/06 面试题
js实现弹框效果
2021/03/24 Javascript
会计系毕业个人自荐信格式
2013/09/23 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
微观世界观后感
2015/06/10 职场文书
酒店温馨提示语
2015/07/14 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
进行数据处理的6个 Python 代码块分享
2022/04/06 Python
python解析照片拍摄时间进行图片整理
2022/07/23 Python