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去掉字符串中空格的方法
Mar 11 Python
Python中zip()函数用法实例教程
Jul 31 Python
详解Django中的ifequal和ifnotequal标签使用
Jul 16 Python
简单讲解Python中的数字类型及基本的数学计算
Mar 11 Python
django实现同一个ip十分钟内只能注册一次的实例
Nov 03 Python
python+selenium识别验证码并登录的示例代码
Dec 21 Python
Django Rest framework之认证的实现代码
Dec 17 Python
python 中pyqt5 树节点点击实现多窗口切换问题
Jul 04 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
Python进行特征提取的示例代码
Oct 15 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
利用python爬取有道词典的方法
Dec 08 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调用三种数据库的方法(1)
2006/10/09 PHP
php include和require的区别深入解析
2013/06/17 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
功能强大的php文件上传类
2016/08/29 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
用JavaScript调用WebService的示例
2008/04/07 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python读写文件操作示例程序
2013/12/02 Python
python之django母板页面的使用
2018/07/03 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
python创建学生成绩管理系统
2019/11/22 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
财务人员个人自荐信范文
2013/09/26 职场文书
小型女装店的创业计划书
2014/01/09 职场文书
消防安全宣传标语
2014/06/07 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
Python中的 No Module named ***问题及解决
2022/07/23 Python