pyQt5实时刷新界面的示例

如下所示:

from PyQt5.QtCore import QThread , pyqtSignal, QDateTime , QObject
from PyQt5.QtWidgets import QApplication, QDialog, QLineEdit
import time
import sys

class BackendThread(QObject):
  # 通过类成员对象定义信号
  update_date = pyqtSignal(str)

  # 处理业务逻辑
  def run(self):
    while True:
      data = QDateTime.currentDateTime()
      currTime = data.toString("yyyy-MM-dd hh:mm:ss")
      self.update_date.emit( str(currTime) )
      time.sleep(1)

class Window(QDialog):
  def __init__(self):
    QDialog.__init__(self)
    self.setWindowTitle('PyQt 5界面实时更新例子')
    self.resize(400, 100)
    self.input = QLineEdit(self)
    self.input.resize(400, 100)
    self.initUI()

  def initUI(self):
    # 创建线程
    self.backend = BackendThread()
    # 连接信号
    self.backend.update_date.connect(self.handleDisplay)
    self.thread = QThread()
    self.backend.moveToThread(self.thread)
    # 开始线程
    self.thread.started.connect(self.backend.run)
    self.thread.start()

  # 将当前时间输出到文本框
  def handleDisplay(self, data):
    self.input.setText(data)

if __name__ == '__main__':
  app = QApplication(sys.argv)
  win = Window()
  win.show()
  sys.exit(app.exec_())

以上这篇pyQt5实时刷新界面的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • pyqt5 使用label控件实时显示时间的实例

    如下所示: import sys from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * class showTime(QDialog): def __init__(self): super(showTime, self).__init__() self.resize(500, 400) self.se

  • PyQt4实时显示文本内容GUI的示例

    首先创建一个txt.py文件用来保存显示整理好的爬虫内容: #! /usr/bin/env python # -*- coding: utf-8 -*- txt_name = ['摄影师李小蕾', 'Match韩风', '师永刚', 'CCTV5体育新闻', '林宥嘉YogaLin', '杭州微博城事', '五月天', '美女新视觉', '聊心情话', '人民网', '央视新闻', '贾玲', '中国广州发布', '丁晞文', 'AzureJK_田柾国资源博', 'BB_Korea美图', '张

  • pyQt5实时刷新界面的示例

    如下所示: from PyQt5.QtCore import QThread , pyqtSignal, QDateTime , QObject from PyQt5.QtWidgets import QApplication, QDialog, QLineEdit import time import sys class BackendThread(QObject): # 通过类成员对象定义信号 update_date = pyqtSignal(str) # 处理业务逻辑 def run(se

  • PyQt5多线程刷新界面防假死示例

    在做GUI界面时我们希望后台任务能够与UI分开,在PyQt中,主线程用来重绘界面.而子线程里边的实时处理结果需要反馈到界面,子线程里边不能执行界面更新操作. wxpython多线程刷新界面转到 https://www.jb51.net/article/176308.htm 下面给出类Python3+PyQt5多线程防假死动态刷新界面的模板 from PyQt5 import QtWidgets, QtCore import sys from PyQt5.QtCore import * impor

  • python通过PyQt5实现登录界面的示例代码

    目录 1. pyQt5简单使用 安装 界面化操作 2.开始实现登录界面 今天为大家介绍一个利用开发登录界面模板,基于pyqt5库,pyqt5这也一个PythonGUI界面开发的库,非常强 本例,展示了通过登录界面打开主界面的实现方式. 在开始实现登录界面前,先给大家普及一下PyQt5的安装以及使用 1. pyQt5简单使用 安装 pip install PyQt5 pip3.5 install pyqt5-tools 界面化操作 1.在win+R中输入designer并敲回车,即可启动Desig

  • 详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)

    一.pyqt5的UI中嵌入matplotlib的方法 1.导入模块 导入模块比较简单,首先声明使用pyqt5,通过FigureCanvasQTAgg创建画布,可以将画布的图像显示到UI,相当于pyqt5的一个控件,后面的绘图就建立在这个画布上,然后把这个画布当中pyqt5的控件添加到pyqt5的UI上,其次要导入matplotlib.figure的Figure ,这里要注意的是matplotlib.figure中的Figure,不是matplotlib.pyplot模块中的Figure,要区分清

  • matplotlib实现数据实时刷新的示例代码

    前言 matplotlib是python下非常好用的一个数据可视化套件,网上相关的教程也非常丰富,使用方便.本人需求一个根据实时数据刷新曲线的上位机软件,找了半天,基本上都是使用matplotlib的交互模式,我折腾半天还是没有实现想要的效果,但却通过另一种方法实现了想要的效果. 源码 注释已经很充分,不多赘述,直接看源码. import matplotlib.pyplot as plt import numpy as np import threading import sys from ra

  • QT自定义QTextEdit实现大数据的实时刷新显示功能实例

    目录 前言 一. 思路 二.关键部分代码 1.缓存 2.滚动部分代码 三.需要优化的地方 总结 前言 最近使用QT中的QTextEdit控件,作为实时数据显示的UI,在一次写入超过多少k的时候循环写入则会卡顿,网上也没有什么好的解决方案,左思右想自己实现一个类似的demo.后期封装起来继承QWidget就可以在其他地方应用,直接上图: 主要功能介绍: 1.这里用一个6M多的文件加一个定时器100ms模拟实时数据,可以 自定义保存多少数据,默认是保存10M数据: 2.行号的显示和隐藏: 3.右侧滚

  • Qt中PaintEvent绘制实时波形图的实现示例

    目录 绘制思路 1:接收硬件传入的数据 2:定时器动态刷新页面 3:真实数据处理 第一步:每进行一次数据更新,都需要剔除超时显示数据. 第二步:筛查有效数据,并记录 4:图形绘制 上一篇文章讲述了如何使用控件进行波形图绘制,虽然很方便,但是也有一些无法避免的问题,比如说:动态绘制图形时,想要流畅的进行波动,就必须按照特定的时间实时更换数据. 接来下,我们采用在paintEvent中绘制的方式进行实时波形图绘制,首先,我们先展示下显示效果吧! 数据来源依旧是硬件传入的实时数据,如下: [0, 3,

  • flutter局部刷新的实现示例

    局部刷新 我们在做项目的时候,都需要单独的去刷新一个值,而不是把整个界面都重绘.大家都知道setState是进行重绘的一个方法,他会执行生命周期的一个build,这将会使得整个界面来进行重绘.当然我们也会说把他进行状态管理,因为我个人不是很喜欢用provider进行状态管理,而是使用steam和event_bus进行传值和管理,当然自然的代码就会多了,所以我现在也在寻找provider更简单的方法,当然这里就不说了,在跟其他人聊的时候,都说好久没有更新了.那是因为有点忙,也变得懒了.现在刚好趁着

  • python开发实时可视化仪表盘的示例

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 这是我的系列教程「Python+Dash快速web应用开发」的第十五期,在前面的一系列教程中,我们针对Dash中的各种常用基础概念作了比较详细的介绍,如果前面的教程你有认真学习,那么相信到今天你已经有能力开发初具规模的Dash应用了. 而在Dash生态中还有一系列功能比较特殊但又非常实用的部件,今天的文章我们就来学习这些常用的「特殊部件」. 2

  • AngularJs实现聊天列表实时刷新功能

    昨天在做app的聊天列表时,遇到了一个问题,消息监听器监听到了一个新的消息,但是如果这时已经处于消息列表的页面那么消息列表并不会及时更新. 我的想法是在service层中的监听器方法里,当监听到了一个新的消息,那么就在根作用域中发出一个广播,告诉controller层需要去获取最新的消息列表了. service层中发出广播: controller层中接听广播: rootScope是所有scope的父级 它的广播(broadcast)和监听(on) 可以在无交集的controller间使用 sco

随机推荐