91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PyQt5中如何使用textBrowser實現顯示print輸出語句

發布時間:2020-11-09 15:57:38 來源:億速云 閱讀:5798 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關PyQt5中如何使用textBrowser實現顯示print輸出語句,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

開發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界面來調用的。

看完上述內容,你們對PyQt5中如何使用textBrowser實現顯示print輸出語句有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新建县| 建宁县| 梅州市| 桐乡市| 剑川县| 文昌市| 仙居县| 东莞市| 怀宁县| 合肥市| 当雄县| 鄂托克前旗| 宜兰市| 于都县| 定边县| 微山县| 南投县| 连江县| 建昌县| 资阳市| 阿图什市| 墨竹工卡县| 石棉县| 沽源县| 新化县| 普安县| 客服| 新源县| 大兴区| 集安市| 固阳县| 托里县| 定边县| 平阴县| 偏关县| 从江县| 咸宁市| 东光县| 定结县| 宜春市| 思茅市|