PYQT5实现控制台显示功能的方法

界面文件 Ui_ControlBoard.py

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'Ui_ControlBoard.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtWidgets

class Ui_MainWindow(object):
  def setupUi(self, MainWindow):
    MainWindow.setObjectName("MainWindow")
    MainWindow.resize(800, 600)
    self.centralwidget = QtWidgets.QWidget(MainWindow)
    self.centralwidget.setObjectName("centralwidget")
    self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
    self.textBrowser.setGeometry(QtCore.QRect(50, 180, 591, 171))
    self.textBrowser.setObjectName("textBrowser")
    self.pushButton = QtWidgets.QPushButton(self.centralwidget)
    self.pushButton.setGeometry(QtCore.QRect(450, 390, 93, 28))
    self.pushButton.setObjectName("pushButton")
    MainWindow.setCentralWidget(self.centralwidget)
    self.menubar = QtWidgets.QMenuBar(MainWindow)
    self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
    self.menubar.setObjectName("menubar")
    MainWindow.setMenuBar(self.menubar)
    self.statusbar = QtWidgets.QStatusBar(MainWindow)
    self.statusbar.setObjectName("statusbar")
    MainWindow.setStatusBar(self.statusbar)

    self.retranslateUi(MainWindow)
    QtCore.QMetaObject.connectSlotsByName(MainWindow)

  def retranslateUi(self, MainWindow):
    _translate = QtCore.QCoreApplication.translate
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
    self.pushButton.setText(_translate("MainWindow", "PushButton"))

逻辑文件 Call_ControlBoard.py

版本一

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from PyQt5 import QtCore, QtGui
import sys
from PyQt5.QtCore import QEventLoop, QTimer
from PyQt5.QtWidgets import QApplication, QMainWindow

from Ui_ControlBoard import Ui_MainWindow

class EmittingStr(QtCore.QObject):
    textWritten = QtCore.pyqtSignal(str) #定义一个发送str的信号
    def write(self, text):
      self.textWritten.emit(str(text))

class ControlBoard(QMainWindow, Ui_MainWindow):
  def __init__(self):
    super(ControlBoard, self).__init__()
    self.setupUi(self)
    # 下面将输出重定向到textBrowser中
    sys.stdout = EmittingStr(textWritten=self.outputWritten)
    sys.stderr = EmittingStr(textWritten=self.outputWritten)

    self.pushButton.clicked.connect(self.bClicked)

  def outputWritten(self, text):
    cursor = self.textBrowser.textCursor()
    cursor.movePosition(QtGui.QTextCursor.End)
    cursor.insertText(text)
    self.textBrowser.setTextCursor(cursor)
    self.textBrowser.ensureCursorVisible()

  def bClicked(self):
    """Runs the main function."""
    print('Begin')
    loop = QEventLoop()
    QTimer.singleShot(1000, loop.quit)
    loop.exec_()
    self.printABCD()
    loop = QEventLoop()
    QTimer.singleShot(1000, loop.quit)
    loop.exec_()
    print("End")

  def printABCD(self):
    print("aaaaaaaaaaaaaaaa")
    print("bbbbbbbbbbbbbbbb")
    print("cccccccccccccccc")
    print("dddddddddddddddd")

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

版本二

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from PyQt5 import QtCore, QtGui
import sys
from PyQt5.QtCore import QEventLoop, QTimer
from PyQt5.QtWidgets import QApplication, QMainWindow

from Ui_ControlBoard import Ui_MainWindow

class EmittingStr(QtCore.QObject):
    textWritten = QtCore.pyqtSignal(str) #定义一个发送str的信号
    def write(self, text):
      self.textWritten.emit(str(text))
      loop = QEventLoop()
      QTimer.singleShot(1000, loop.quit)
      loop.exec_()

class ControlBoard(QMainWindow, Ui_MainWindow):
  def __init__(self):
    super(ControlBoard, self).__init__()
    self.setupUi(self)
    # 下面将输出重定向到textBrowser中
    sys.stdout = EmittingStr(textWritten=self.outputWritten)
    sys.stderr = EmittingStr(textWritten=self.outputWritten)

    self.pushButton.clicked.connect(self.bClicked)

  def outputWritten(self, text):
    cursor = self.textBrowser.textCursor()
    cursor.movePosition(QtGui.QTextCursor.End)
    cursor.insertText(text)
    self.textBrowser.setTextCursor(cursor)
    self.textBrowser.ensureCursorVisible()

  def bClicked(self):
    """Runs the main function."""
    print('Begin')

    self.printABCD()

    print("End")

  def printABCD(self):
    print("aaaaaaaaaaaaaaaa")
    print("bbbbbbbbbbbbbbbb")
    print("cccccccccccccccc")
    print("dddddddddddddddd")

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

版本三

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from PyQt5 import QtCore, QtGui
import sys
from PyQt5.QtCore import QEventLoop, QTimer
from PyQt5.QtWidgets import QApplication, QMainWindow

from Ui_ControlBoard import Ui_MainWindow

class EmittingStr(QtCore.QObject):
    textWritten = QtCore.pyqtSignal(str) #定义一个发送str的信号
    def write(self, text):
      self.textWritten.emit(str(text))

class ControlBoard(QMainWindow, Ui_MainWindow):
  def __init__(self):
    super(ControlBoard, self).__init__()
    self.setupUi(self)
    # 下面将输出重定向到textBrowser中
    sys.stdout = EmittingStr(textWritten=self.outputWritten)
    sys.stderr = EmittingStr(textWritten=self.outputWritten)

    self.pushButton.clicked.connect(self.bClicked)

  def outputWritten(self, text):
    cursor = self.textBrowser.textCursor()
    cursor.movePosition(QtGui.QTextCursor.End)
    cursor.insertText(text)
    self.textBrowser.setTextCursor(cursor)
    self.textBrowser.ensureCursorVisible()

  def bClicked(self):
    """Runs the main function."""
    print('Begin')

    self.printABCD()

    print("End")

  def printABCD(self):
    print("aaaaaaaaaaaaaaaa")
    print("bbbbbbbbbbbbbbbb")
    print("cccccccccccccccc")
    print("dddddddddddddddd")

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

以上这篇PYQT5实现控制台显示功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • pyqt5 实现工具栏文字图片同时显示

    如下所示: import sys from PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QApplication from PyQt5.QtGui import QIcon from PyQt5.QtCore import Qt class Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): te

  • 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实现控制台显示功能的方法

    界面文件 Ui_ControlBoard.py # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'Ui_ControlBoard.ui' # # Created by: PyQt5 UI code generator 5.11.3 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore

  • 对PyQt5中树结构的实现方法详解

    树的实质是很多条数据按照一定的内在关系,分层级显示出来.因此每一条数据包括数据项和相互关系.数据项就对应了树中的column,而相互关系对应的是应该显示在哪一个条目下. PyQt5中,树的实现有两种形式,其中较为简单的是使用Tree Widget控件. 对于静态的数据,实现树结构可以直接在Qt中拖入一个Tree Widget控件,然后右键点击它,选择编辑. 其中column是每一条数据有几个数据项,Item体现的是数据和数据之间是什么关系. 对于我们需要从数据库中查出来的数据,我么需要根据实际的

  • Python实现控制台输入密码的方法

    本文实例讲述了Python实现控制台输入密码的方法.分享给大家供大家参考.具体如下: 1. raw_input() : pwd = raw_input('password: ') print pwd # password: aaa # aaa Note: 最简单的方法,但是不安全 2. getpass.getpass() : import getpass pwd = getpass.getpass('password: ') print pwd # password: # aaaa Note:

  • js控制台输出的方法(详解)

    console.log(object[, object, ...]) 在控制台输出一条消息.如果有多个参数,输出时会用空格隔开这些参数. 第一个参数可以是一个包含格式化占位符输出的字符串,例如: console.log("The %s jumped over %d tall buildings", animal, count); 上面的例子可以用下面的无格式化占位符输出的代码替换: console.log("The", animal, "jumped ov

  • layui中layer前端组件实现图片显示功能的方法分析

    本文实例讲述了layer前端组件实现图片显示功能的方法.分享给大家供大家参考,具体如下: 实现图片显示功能:layer 1.在这里介绍一种layer前端组件 layer是一款口碑极佳的web弹层组件,她具备全方位的解决方案, 致力于服务各个水平段的开发人员,您的页面会轻松地拥有丰富而友好的操作体验. 官网下载地址:http://layer.layui.com/ 或者点击此处本站下载. 里面有具体的使用方法 这里注意几点:在使用layer前端组件之前,我们要引入layer的js文件 <script

  • 让VIM支持Nginx .conf文件语法高亮显示功能的方法

    前言 本文主要介绍了关于让VIM支持Nginx .conf文件语法高亮显示功能的方法,下面话不多说,来一起看看详细的介绍吧. 我们在编辑配置 Nginx 的配置文件(.conf)时,由于他没有高亮的功能,但是 Nginx 官方是支持这个功能的:要想在编辑配置 Nginx 配置文件(.conf)的时候高亮语法以降低配置的错误发生率,我们只需要使用 Nginx 官方的语法高亮文件就可以了. 手动修改 下载Nginx配置文件的语法文件:nginx.vim wget http://www.vim.org

  • C#下载网页并在控制台输出的方法

    本文实例讲述了C#下载网页并在控制台输出的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Net; using System.Text; using System.IO; namespace Test { class GetWebPage { public static void Main(string[] args) { for(int i=0;ilt;args.Length;i++) { HttpWebRequest httpWebReq

  • python实现控制台打印的方法

    如下所示: #!/usr/bin/env python import os import sys class CConsole: M_MAP_COLOR = {\ 'COLOR_BLACK' : "\033[0;30m", 'COLOR_RED' : "\033[0;31m", 'COLOR_GREEN' : "\033[0;32m", 'COLOR_YELLOW' : "\033[0;33m", 'COLOR_BLUE' :

  • PyQt5显示GIF图片的方法

    使用QMoive方法实现 导入库文件 from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtGui import QMovie 创建一个带label控件的窗口,label作为GIF的显示窗体 class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(517, 361) self.label = QtWidgets.

  • PyQt5响应回车事件的方法

    我在编程时遇到一个问题,就是PyQt5不能响应回车时间,也就是下面这段代码不能执行: if (event.key() == Qt.Key_Enter): 解决方法:打印出事件码: def keyPressEvent(self, event): #这里event.key()显示的是按键的编码 print("按下:" + str(event.key())) 然后直接判断事件码: if str(event.key())=='16777220':#回车 print('ok') 以上这篇PyQt

随机推荐