开发python程序处理大数据量的时候,少不了使用print语句看看输出结果;长时间处理数据时用print输出处理进展情况。使用PyQt5开发了UI界面后,本能地想让已自己调试好的py代码中的print输出到UI的textBrowser中显示出来。在CSDN上查了不少结果,一般都是使用多线程。我对多线程研究不多,就采用了变通办法,效果还挺好。
在Ui界面程序(Ui_startaml.py)中设置textBrowser用于显示程序输出信息,并自己定义代码(def printf ),以后将.py程序中凡是用print的地方改用ui.printf()调用就OK.
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\aml\startaml.ui'
# Created by: PyQt5 UI code generator 5.11.3
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setEnabled(True)
MainWindow.resize(490, 390)
MainWindow.setMaximumSize(QtCore.QSize(490, 390))
font = QtGui.QFont()
#.......
#........中间自动生成代码省去....
#........
self.textBrowser = QtWidgets.QTextBrowser(self.centralWidget)
self.textBrowser.setGeometry(QtCore.QRect(10, 109, 471, 221))
self.textBrowser.setMaximumSize(QtCore.QSize(16777215, 16777215))
font = QtGui.QFont()
font.setFamily("宋体")
self.textBrowser.setFont(font)
self.textBrowser.setObjectName("textBrowser")
#..........其它语句
def printf(self,mypstr):
###
自定义类print函数,借用c语言 printf
Mypstr:是待显示的字符串
###
self.textBrowser.append(mypstr) #在指定的区域显示提示信息
self.cursor=self.tetxBrowser.textCursor()
self.tetxBrowser.moveCursor(self.cursor.End) #光标移到最后,这样就会自动显示出来
QtWidgets.QApplication.processEvents() #一定加上这个功能,不然有卡顿
其它py程序如何去调用class Ui_MainWindow(object) 类呢,比如:
# -*- coding: utf-8 -*-
"""
Module implementing MainWindow.
这是ui界面主程序,它将调用已调试成功的.py程序。如runget.py
"""
from PyQt5 import QtWidgets
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QMainWindow
from Ui_startaml import Ui_MainWindow
import sys
sys.path.append('src')
from runget import run_get #单独调试成功代码,可将正常print语句稍加改造
class MainWindow(QMainWindow, Ui_MainWindow):
"""
Class documentation goes here.
"""
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
super(MainWindow,self).__init__(parent)
self.setupUi(self)
self.graphicsPsw.mousePressEvent=self.chpsw_clicked #点mouse调用改密码功能。
def chpsw_clicked(self, e):
"""
change psw
"""
print('change psw record')
def _runget(self,ui): #此处调用单独开发的py代码。
run_get(ui) #是 runget.py 中主程序的入口方法。
@pyqtSlot()
def on_pushBut_get_clicked(self):
"""
Slot documentation goes here.
这是槽函数,调用事先开发好的模块
"""
# TODO: not implemented yet
self.printf("\n自动捕获信息分析数据,您等着瞧!")
self._runget(ui) #传入ui实例是关键
# ...........省略非相关代码.....
if __name__ == "__main__":
#这是Ui界面主程序,注意ui这个实例化对象,就OK了
app = QtWidgets.QApplication(sys.argv)
app.aboutToQuit.connect(app.deleteLater)
ui = MainWindow()
ui.show()
sys.exit(app.exec_())
run_get(ui)是单独的调试成功的runget.py程序中的主入口,简化如下:
#!C:\\Anaconda3\\python.exe
# -*- coding: utf-8 -*-
runget.py
"""
Created on Wed Mar 13 15:32:50 2019
@author: yuce_hz 2019年3月11日,runget.py
""""
import re
import os
import time
import requests
from requests.exceptions import RequestException
from lxml import etree
#..........
#......省略无关代码....
#........
def run_get(ui):
#1全局变量,并打开设置
glob_var_chrome() #
#2.联网
if (login_nsso(gl_url,gl_user,gl_pass)!='OK'):
#print("登录系统不成功,无法进行下去,检查网络正常后,可再运行。") #这是正常的print代码
ui.printf("登录系统不成功,无法进行下去,检查网络正常后,可再运行。" #这是知适应ui界面输出的printf
browser.quit()
#............简化代码.........
#.....................
if __name__=='__main__':
run_get() #单独运行的调用时不用传ui参数, run_get(ui),是应对UI界面来调用的。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]