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中的迭代器漫谈
Feb 03 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
python构建基础的爬虫教学
Dec 23 Python
python正则表达式去除两个特殊字符间的内容方法
Dec 24 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
python3连接MySQL8.0的两种方式
Feb 17 Python
Python matplotlib实时画图案例
Apr 23 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
Jun 28 Python
通过实例解析Python文件操作实现步骤
Sep 21 Python
scrapy实践之翻页爬取的实现
Jan 05 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
将数组写入txt文件 var_export
2009/04/21 PHP
php根据日期判断星座的函数分享
2014/02/13 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
2014/05/11 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
Python常用内置模块之xml模块(详解)
2017/05/23 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
YUV转为jpg图像的实现
2019/12/09 Python
Pyqt5自适应布局实例
2019/12/13 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
几款好用的python工具库(小结)
2020/10/20 Python
.net面试题
2015/12/22 面试题
技校毕业生的自我评价
2013/12/27 职场文书
计算机专业职业规划
2014/02/28 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
法人代表授权委托书
2014/04/08 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
走进敬老院活动总结
2014/07/10 职场文书
2015年入党决心书
2015/02/05 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
python数据分析之用sklearn预测糖尿病
2021/04/22 Python