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 相关文章推荐
python实现电子词典
Apr 23 Python
Python中的默认参数详解
Jun 24 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
Mar 04 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
May 25 Python
在scrapy中使用phantomJS实现异步爬取的方法
Dec 17 Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 Python
python redis连接 有序集合去重的代码
Aug 04 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
python基础 range的用法解析
Aug 23 Python
python实现指定ip端口扫描方式
Dec 17 Python
python 装饰器的基本使用
Jan 13 Python
python实现高效的遗传算法
Apr 07 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 异常处理实现代码
2009/03/10 PHP
PHP原理之异常机制深入分析
2010/08/08 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
学习面向对象之面向对象的术语
2010/11/30 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
2012/05/11 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
JS实现文档加载完成后执行代码
2015/07/09 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
jquery+css实现Tab栏切换的代码实例
2019/05/14 jQuery
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
python list语法学习(带例子)
2013/11/01 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
python的time模块和datetime模块实例解析
2019/11/29 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
python excel和yaml文件的读取封装
2021/01/12 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
教师一帮一活动总结
2014/07/08 职场文书
工人先锋号申报材料
2014/12/29 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
考试后的感想
2015/08/07 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书