PyQt5事件处理之定时在控件上显示信息的代码_python

来源:脚本之家  责任编辑:小易  

用一个列表存放label,就可以随时添加了

有时候为了体现延时效果,或者是多事件处理,需要在窗口的文本编辑框或者表格等控件中,延迟几秒或每隔几秒显示输出一段数据,又或者可以说是每隔几秒执行下一行代码!要实现这种效果,关键的两个方法就是time.sleep()processEvents(),具体看如下代码:

方法/步骤 下载版本:PyQt5-5.4.1-gpl-Py3.4-Qt5.4.1-x64.exe 里面有个py3.4,不知道是不是一定要版本对应,但是这个命名中有py3.4,下载3.4版本的python就对了。 官网python3.4-64位的版本下载 https://www.python.org/downloads/release/pytho

from PyQt5 import QtCore, QtGui, QtWidgets import sys from PyQt5.QtWidgets import * import time class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(390, 500) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout_2.setObjectName("gridLayout_2") self.gridLayout = QtWidgets.QGridLayout() self.gridLayout.setObjectName("gridLayout") self.textEdit = QtWidgets.QTextEdit(self.centralwidget) self.textEdit.setObjectName("textEdit") self.gridLayout.addWidget(self.textEdit, 1, 1, 1, 1) self.tableWidget = QtWidgets.QTableWidget(self.centralwidget) self.tableWidget.setObjectName("tableWidget") self.tableWidget.setColumnCount(3) self.tableWidget.setRowCount(4) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, item) self.gridLayout.addWidget(self.tableWidget, 0, 1, 1, 1) self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setMaximumSize(QtCore.QSize(200, 16777215)) self.pushButton.setObjectName("pushButton") self.gridLayout.addWidget(self.pushButton, 2, 1, 1, 1) self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 18)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) # 表格属性设置 self.tableWidget.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Stretch) # 【开始】按钮 self.pushButton.clicked.connect(self.pushButton_Clicked) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) # 设置每隔几秒输出数据 def pushButton_Clicked(self): self.textEdit.setText("获取基金数据中...") # 刷新页面 QApplication.processEvents() item = [["110003", "易方达上证50", "-1.97%"], ["005918", "天弘沪深300", "-3.15%"], ["001513", "易方达信息产业", "-4.69%"]] for i in range(3): # 每隔两秒执行一次以下代码,直到循环结束 time.sleep(2) self.textEdit.append("获取基金" + item[i][1] + "\n...") for j in range(3): self.tableWidget.setItem(i, j, QtWidgets.QTableWidgetItem(item[i][j])) # 刷新页面 QtWidgets.QApplication.processEvents() def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) item = self.tableWidget.verticalHeaderItem(0) item.setText(_translate("MainWindow", "1")) item = self.tableWidget.verticalHeaderItem(1) item.setText(_translate("MainWindow", "2")) item = self.tableWidget.verticalHeaderItem(2) item.setText(_translate("MainWindow", "3")) item = self.tableWidget.verticalHeaderItem(3) item.setText(_translate("MainWindow", "4")) item = self.tableWidget.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "基金编号")) item = self.tableWidget.horizontalHeaderItem(1) item.setText(_translate("MainWindow", "基金名称")) item = self.tableWidget.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "基金净值")) self.pushButton.setText(_translate("MainWindow", "开始")) if __name__ == "__main__": app = QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())

Linux系统下Qt5编译好的程序在未安装Qt的系统下运行会报以下错误: This application failed to start because it could not find or load the Qt platform plugin "xcb". Reinstalling the application may fix this problem. 出现这个错误,主

其中关键代码如下,需要设计一个循环才能实现每隔2秒执行一次循环中的代码,至于为何要调用两次刷新页面的函数,是因为每调用一次QApplication.processEvents()就会刷新页面,将之前在窗口显示数据的代码的效果全部显示到窗口中,而在循环之前有一个输出到文本框的文字需要首先显示,所以在循环之前刷新一次页面,否则就会和循环第一次的内容一起出现!而第二次调用这个函数则是将循环中每隔2秒执行的那几行代码产生的效果显示出来,其中输出文本框采用append()是为了不覆盖之前的文字。

以下用一个简单例子来表现如何用signal/slot信号槽来退出线程。 若有一个按钮,点击开始线程,再次点击退出线程,线程的工作为打印a(1-20)然后b(1-20),线程代码如下: [python] view plain copy class UpdateThread(QThread): def __init__

# 设置每隔几秒输出数据 def pushButton_Clicked(self): self.textEdit.setText("获取基金数据中...") # 刷新页面 QApplication.processEvents() item = [["110003", "易方达上证50", "-1.97%"], ["005918", "天弘沪深300", "-3.15%"], ["001513", "易方达信息产业", "-4.69%"]] for i in range(3): # 每隔两秒执行一次以下代码,直到循环结束 time.sleep(2) self.textEdit.append("获取基金" + item[i][1] + "\n...") for j in range(3): self.tableWidget.setItem(i, j, QtWidgets.QTableWidgetItem(item[i][j])) # 刷新页面 QtWidgets.QApplication.processEvents()

不用看错误信息都基本上可以知道,你打包时候肯定缺东西了。 比如有一个aaa.py文件,你需要打包,要 pyinstaller -F aaa.py 这样生成之后,其实不管你有没有漏掉什么库都可以打包成功,不过要善于从提示中发现问题,他会提示你需要什么库,然后

运行结果如下图所示(内容以基金的净值为例,以此纪念我这段艰难入坑基金的岁月,呜呜呜,跌穿谷底噜):因为不是动图,实际显示的效果是:点击【开始】按钮后,首先文本框显示第一行文字,然后隔2秒后显示第二三行文字,同时在表格中显示第一行的信息,再隔2秒就是文本框第四五行文字以及表格第二行信息,以此类推,直到循环结束!

手指甲是人体健康“晴雨表”。中医学认为,爪为筋之余,为肝胆之外候。简单地讲,看指甲可测知体内脏腑气血的盛衰,可以知道一个人身体健康与否,指甲的情况可以说是间接的反映了人体的健康程度!当手指甲出现以下几种情况就需要注意了:1、有竖纹说明消化不好、营养不良、缺钙。不少人的指甲上都有或密或疏的棱状竖纹,这种情况如果是短时出现,并很快会消失,通常是由于用脑过度、太过操劳,睡眠不足引起的。2、有黑色竖纹说明肝肾衰弱,体内有毒素。中医上认为指甲是依赖于肝血和肝气的荣养,肝肾的生理机能的旺盛与否可以从指甲的色泽和形态上表现出来。所以,通常认为,如果手指甲上出现了黑色竖纹则可能是肝肾机能衰弱,毒素寄存体内的征

在这里插入图片描述

虽然PyQt5中有自己的定时器QTimer,但是我暂时没有想到如何用它来实现上述的效果,因此就没有使用该方法,如有更好的方法欢迎大神指点!

全运会女排战场的硝烟刚刚散尽,国家队总教练郎平的集结号就已经吹响,中国女排将士厉兵秣马,全国球迷万众瞩目,女排姑娘们即将带着国人的希望,挥师日本,剑指大冠军杯。由于精英赛和大奖赛中国女排表现不尽如人意,这次郎指导术后不久就远涉重洋回到北京提前特训了朱婷和小苹果,并有可能亲自指挥即将到来的大冠军杯比赛,为的就是重新提振中国女排的士气,给队员重新树立信心。\n\n大冠军杯虽然不像奥运会世锦赛那样重要,但也是四年一届,与世界杯、世锦赛、奥运会错开,刚好保证每年都有一项重要的排球赛事。中国女排曾在2001年由陈忠和率领黄金一代夺得大冠军杯,开创了中国女排的二次辉煌时代。2009年和2013年随着黄金一

总结

到此这篇关于PyQt5事件处理之定时在控件上显示信息的代码的文章就介绍到这了,更多相关PyQt5事件处理内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

离开比赛场,有时候不仅仅是因为身体上的原因,很多时候,很多人,都是因为已经对身后的赛场失去了眷恋,或者,已经没有前进的动力。作为博尔特而言,身体的伤病固然是一方面的原因,就像你说的,加特林都35岁了还在跑。更多的是,博尔特的心理已经想到了离开。看看博尔特过去的辉煌,他是这个星球上百米最快的人类,从古至今,他早已超越了一个个的传奇巨星,将自己的孤独的供奉在神坛。有人说过这么一句话:当你习惯于开法拉利和兰博基尼,你就怎么也不想再开那些屌丝车了。当你一直习惯了胜利的感觉,你怎么能够承受得了昔日对手将你踩在脚下的感觉嘛?自古美人叹迟暮,不许英雄见白头,英雄和美人没有选择,他们只能眼睁睁的看着昔日的荣耀

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

pyqt5如何把Python代码放在软件里运行

在python中可以用

import os

os.system("python file")

这样的方式实现运行另一个python文件的目的。

Python的PYQT5和QML哪个好用

PyQt5不兼容PyQt4(尽管经验表明,将PyQt4的应用程序移植到PyQt5难度不是很大)。本节描述了两者之间的主要差异。

支持Python的版本

不支持较早的Python2.6之前的版本┊。

推荐使用特性

PyQt5不支持任何被标记为过时的或废弃的QT V5.0 的API。然而,还是可能有一些“漏网之鱼”。如果将来发现了,这些错误将被删除。

多个API

PyQt4支持许多不同的API版本(QString,QVariant等)。QVariant

PyQt5只支持V2版本的API。一个例外:对于QVariant ,去除了QPyNullVariant。

老式的信号和槽

PyQt4的旧式的信号和槽不再被支持。因此以下用法在PyQt5中已经不能使用:

QObject.connect()

QObject.emit()

SIGNAL()

SLOT()

所有那些含有参数,并且对返回结果调用SIGNAL()或SLOT()的方法不再被支持。绑定信号与调用函数总是等效的。

此外,另一个差异是增加了下面的函数:

disconnect() 断开所有对 QObject实例的连接,不需要参数。

新风格的信号和槽

QT实现的信号与一个可选的参数作为两个独立的信号,一个与论点 和一个没有它。PyQt4暴露这两允许你连接到他们每个 。然而,当发射信号,你必须使用适当的参数 发出的信号数。

PyQt5暴露唯一的信号在所有指定参数。然而它 允许任何可选参数被省略时,发射信号。

不同于PyQt4,PyQt5支持在类中自定义属性、信号与槽,即使这个类没有继承自QObject(比如:混合类)。

QtDeclarative,QtScript和QtScriptTools模块

PyQt4的QtDeclarative,QtScript和QtScriptTools模块不再支持。这些已被替换为PyQt5的QtQml和QtQuick模块,PyQt5支持 Python对象创建QML。

QtGui模块

PyQt4的QtGui模块,在PyQt5中被拆分成三个模块:QtGui,QtPrintSupport和QtWidgets。

QtOpenGL模块

只有QGlContext,QGlFormat和QGlWidget类被PyQt5支持。

QtWebKit模块

PyQt4的QtWebKit模块被分成PyQt5的QtWebKit和QtWebkitWidgets模块。

pyqtconfig模块

PyQt4的pyqtconfig模块不支持。截面PyQt5扩展的API介绍了支持PyQt5 (例如提供第三方包qscintilla ),要建立在PyQt5。

dbus.mainloop.qt模块

PyQt4的dbus.mainloop.qt模块称为dbus.mainloop.PyQt5在 PyQt5。这使得他们可以并排安装。它们的功能是 相同。

QDataStream

的readuint8(),readint8(),writeuint8()和writeint8()方法解释值 读写数字。PyQt4中它们被解释为 单个字符的字符串。

QFileDialog

PyQt4的QFileDialog类的getOpenFileNameAndFilter(),getOpenFileNamesAndFilter()和getSaveFileNameAndFilter()方法,

在PyQt5中已更名为 getOpenFileName(),getOpenFileNames()和getSaveFileName()。

而PyQt4原来的getOpenFileName(),getOpenFileNames()和getSaveFileName()不再被PyQt5支持。

QGraphicsItemAnimation

对废弃的QGraphicsItemAnimation类的支持已被删除。如果移植现有的PyQt4应用程序,首先考虑用QPropertyAnimation替换。

QMatrix

对废弃的QMatrix类的支持已被删除。如果移植现有的PyQt4应用程序,首先考虑用QTransform替换。

QPyTextObject

PyQt4的QPyTextObject,是作为一个无法定义一个继承多个Qt类的Python类的变通的解决方法。PyQt5 支持定义一个Python类,来继承多个Qt类,只要他们已经在C++声明为Q_DECLARE_INTERFACE 。所以,QPyTextObject没有在PyQt5中实现。

QSet

PyQt4,套装在Python中的V2和V3一组Python 列表实现。在PyQt5套装总是作为一个集实现。

pyuic5

pyuic5不支持pyqt3——包装国旗pyuic4。

pyrcc5

pyrcc5不支持- PY2和- PY3国旗pyrcc4。输出pyrcc5兼容所有版本的Python Python 2.6 入手。

多重继承

不像PyQt4 PyQt5类实现多重继承,合作。在其他的话总是做 PyQt5类下面的Python代码在等效 V3__init__方法(如kwds是一个未使用的关键词 参数字典):

super().__init__(**kwds)

这意味着,那些未使用的关键字的参数传递给__init__任何mixin类的方法。这些混合类必须合作,即 必须如果他们有自己做一个类似的电话__init__实现。

当使用多重继承PyQt4是常见的电话__init__的超类方法明确,例如:

class MyQObject(QObject, MyMixin):

def __init__(self, parent, mixin_arg):

QObject.__init__(self, parent)

MyMixin.__init__(self, mixin_arg)

# Other initialisation...

在上述将导致PyQt5mymixin __init__。被称为两 。而要实现:

class MyQObject(QObject, MyMixin):

def __init__(self, **kwds):

super().__init__(**kwds)

# Other initialisation...

请注意,如果没有其他的初始化做那么__init__方法不需要。

混合类应实施如下:

class MyMixin:

def __init__(self, mixin_arg, **kwds):

super().__init__(**kwds)

# Other initialisation...追问也就是说PyQt5更好吗支持与QML的混写

pyqt5支持python2.7吗

支持

当前Deadline7版本使用的是Python2.7+Qt5作为框架,来进行的开发,为了与之配合,

做定制项目开发的时候,也需要同样的版本搭配。

为此在网上搜索了一下,看到PyQt的官网,PyQt5只有针对Python3的安装包而没有针对Python2.7的,

似乎只有下载自行编译一途。但是自己在Windows上编译Pyqt5,在尝试之后终于放弃,依赖多多,错误多多。

最后经过网友提醒,可以使用pip来安装网上资源包,现成的。

操作过程:

1、进行pip的安装目录。 Python27/Scripts目录下面。

2、执行 pip install python-qt5

3、OK,搞定,就这么简单。本回答被提问者采纳

python pyqt5 如何把ssh远程执行的linux命令结果输出到控件上(如textEdit)

textEdit控件应该有个setText函数,可以使用它来显示想要显示的文本。

  • 本文相关:
  • python gui库图形界面开发之pyqt5信号与槽事件处理机制详细介绍与实例解析
  • python3+pyqt5重新实现qt事件处理程序
  • pyqt5 使用label控件实时显示时间的实例
  • pyqt5每天必学之滑块控件qslider
  • pyqt5每天必学之像素图控件qpixmap
  • python中多层嵌套列表的拆分方法
  • python list数据等间隔抽取并新建list存储的例子
  • 跟老齐学python之坑爹的字符编码
  • 使用django的模版来配合字符串翻译工作
  • python的turtle库使用详解
  • python定义类self用法实例解析
  • python生成lmdb格式的文件实例
  • 利用python实现微信找房机器人实例教程
  • tensorflow session使用的两种方法小结
  • pytorch 在sequential中使用view来reshape的例子
  • pyqt5如何把Python代码放在软件里运行
  • Python的PYQT5和QML哪个好用
  • pyqt5支持python2.7吗
  • python pyqt5 如何把ssh远程执行的linux命令结果输...
  • python pyqt5 什么窗口可以显示变化的数据
  • 如何用python创建大量的label(在pyqt5中界面显示...
  • 如何安装python3-pyqt5
  • Python安装PyQt5时遇到这个问题该怎么解决
  • Pyqt5如何停止多线程
  • 用pyinstaller打包包含pyqt5的python3.6程序后,打...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全vbsdos/bathtahtcpythonperl游戏相关vba远程脚本coldfusionruby专题autoitseraphzonepowershelllinux shellluagolangerlang其它首页pythonpython gui库图形界面开发之pyqt5信号与槽事件处理机制详细介绍与实例解析python3+pyqt5重新实现qt事件处理程序pyqt5 使用label控件实时显示时间的实例pyqt5每天必学之滑块控件qsliderpyqt5每天必学之像素图控件qpixmappython中多层嵌套列表的拆分方法python list数据等间隔抽取并新建list存储的例子跟老齐学python之坑爹的字符编码使用django的模版来配合字符串翻译工作python的turtle库使用详解python定义类self用法实例解析python生成lmdb格式的文件实例利用python实现微信找房机器人实例教程tensorflow session使用的两种方法小结pytorch 在sequential中使用view来reshape的例子python入门教程 超详细1小时学会python 列表(list)操作方法详解python 元组(tuple)操作详解python 字典(dictionary)操作详解pycharm 使用心得(一)安装和首python strip()函数 介绍python 中文乱码问题深入分析python科学计算环境推荐——anacpython逐行读取文件内容的三种方python中使用xlrd、xlwt操作excepython利用百度云接口实现车牌识别的示例用python批量把文件复制到另一个文件夹的对python3标准库httpclient的使用详解详解django-restframework 之频率源码分析解决pycharm 工具栏tool中找不到run manapython实现partial改变方法默认参数pandas读取mysql数据到dataframe的方法python中用format函数格式化字符串的用法python提取照片坐标信息的实例代码python 最强编辑器详细使用指南(pycharm
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved