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中使用ConfigParser解析ini配置文件实例
Aug 30 Python
Python中list列表的一些进阶使用方法介绍
Aug 15 Python
Python实现约瑟夫环问题的方法
May 03 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
python写入已存在的excel数据实例
May 03 Python
python实现图片筛选程序
Oct 24 Python
对python中dict和json的区别详解
Dec 18 Python
PyTorch中反卷积的用法详解
Dec 30 Python
关于TensorFlow新旧版本函数接口变化详解
Feb 10 Python
django日志默认打印request请求信息的方法示例
May 17 Python
python和JavaScript哪个容易上手
Jun 23 Python
解决Python字典查找报Keyerror的问题
May 26 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分页显示制作详细讲解
2008/11/19 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
Python中xrange与yield的用法实例分析
2017/12/26 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
如何在python中实现线性回归
2020/08/10 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
怎样拟定创业计划书
2014/05/01 职场文书
国旗下演讲稿
2014/05/08 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
2014年公务员工作总结
2014/11/18 职场文书
档案接收函格式
2015/01/30 职场文书
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸