pyQt5实时刷新界面的示例

yipeiwu_com5年前Python基础

如下所示:

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实时刷新界面的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法

pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法

self.lineEdit.setEchoMode(QLineEdit.Password) 设置密码隐藏 self.lineEdit.setClearButtonEnabled(True...

python 基于dlib库的人脸检测的实现

python 基于dlib库的人脸检测的实现

本周暂时比较清闲,可以保持每日一更的速度。 国外身份证项目新增需求,检测出身份证正面的人脸。最开始考虑mobilenet-ssd,经同事提醒,有现成的人脸库dlib,那就用传统方法尝试一...

Python三级目录展示的实现方法

Python三级目录展示的实现方法

要求: 1、三级菜单 2、可依次选择进入各子菜单,选择序号进入目录 3、输入b返回上级目录,q退出更改目录 代码实现: #!/bin/env python #!--*--co...

pycharm修改file type方式

pycharm修改file type方式

原因 添加一个文件 config.ini, 理论上说该文件会以ini文件格式打开,但是不知道咋的手贱用Text格式打开了。 .ini正确打开方式 .Text正确打开方式 手贱操作后的...

python连接mongodb操作数据示例(mongodb数据库配置类)

一、相关代码数据库配置类 MongoDBConn.py 复制代码 代码如下:#encoding=utf-8'''Mongo Conn连接类'''import pymongoclass D...