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中Django框架利用url来控制登录的方法
Jul 25 Python
实例讲解Python设计模式编程之工厂方法模式的使用
Mar 02 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
详解python while 函数及while和for的区别
Sep 07 Python
python 把列表转化为字符串的方法
Oct 23 Python
python 获取键盘输入,同时有超时的功能示例
Nov 13 Python
python 堆和优先队列的使用详解
Mar 05 Python
Python3 sys.argv[ ]用法详解
Oct 24 Python
python实现超市管理系统(后台管理)
Oct 25 Python
提升python处理速度原理及方法实例
Dec 25 Python
Virtualenv 搭建 Py项目运行环境的教程详解
Jun 22 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 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
.htaccess文件保护实例讲解
2011/02/06 PHP
php读取csv实现csv文件下载功能
2013/12/18 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
linux中cd命令使用详解
2015/01/08 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
[05:24]TI9采访——教练
2019/08/24 DOTA
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
2018/07/26 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
python基于SMTP协议发送邮件
2019/05/31 Python
Pytorch之保存读取模型实例
2019/12/30 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
编程用JAVA解析XML的方式
2013/07/07 面试题
应届毕业生求职信范例分享
2013/12/17 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
初三政治教学反思
2014/01/30 职场文书
总会计师岗位职责
2014/02/19 职场文书
酒店开业庆典策划方案
2014/05/28 职场文书
应届生求职信
2014/05/31 职场文书
会计电算化专业求职信
2014/06/10 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
网吧温馨提示
2015/07/17 职场文书
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python