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深入学习之装饰器
Aug 31 Python
Python中用PIL库批量给图片加上序号的教程
May 06 Python
Python遍历指定文件及文件夹的方法
May 09 Python
Python栈类实例分析
Jun 15 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
使用Python实现在Windows下安装Django
Oct 17 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
Python3 关于pycharm自动导入包快捷设置的方法
Jan 16 Python
通过字符串导入 Python 模块的方法详解
Oct 27 Python
Python远程开发环境部署与调试过程图解
Dec 09 Python
Python随机数函数代码实例解析
Feb 09 Python
Python urllib3软件包的使用说明
Nov 18 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实现文件编码批量转换
2014/03/10 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
jquery ui resizable bug解决方法
2010/10/26 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
取得元素的左和上偏移量的方法
2014/09/17 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
switchery按钮的使用方法
2017/12/18 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
Python格式化输出%s和%d
2018/05/07 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
数控专业应届生求职信
2013/11/27 职场文书
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
促销活动总结范文
2014/04/30 职场文书
党校毕业个人总结
2015/02/28 职场文书
工作一年自我鉴定
2019/06/20 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android