【pyqt】控制台输出显示在界面上

every blog every motto: You can do more than you think.
https://blog.csdn.net/weixin_39190382?type=blog

0. 前言

pyqt 界面 显示 控制台的输出

1. 正文

class Signal(QObject):

    text_update = pyqtSignal(str)

    def write(self, text):
        self.text_update.emit(str(text))
        # loop = QEventLoop()
        # QTimer.singleShot(100, loop.quit)
        # loop.exec_()
        QApplication.processEvents()


class Mainworkwindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
 
        # 实时显示输出, 将控制台的输出重定向到界面中
        sys.stdout = Signal()
        sys.stdout.text_update.connect(self.updatetext)

    def updatetext(self, text):
        """
            更新textBrowser
        """
        cursor = self.textBrowser.textCursor()
        cursor.movePosition(QTextCursor.End)
        self.textBrowser.append(text)
        self.textBrowser.setTextCursor(cursor)
        self.textBrowser.ensureCursorVisible()

参考

[1] https://blog.csdn.net/ccj15010192778/article/details/102704301
[2] https://blog.csdn.net/ccj15010192778/article/details/102704301
[3] https://blog.csdn.net/venture5/article/details/121423286

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PyQt5是一个强大的图形用户界面工具包,用于创建应用程序的用户界面。通常情况下,PyQt5创建的界面不会显示控制台输出。 然而,可以通过一些技巧将控制台输出显示PyQt5的图形用户界面中。最简单的方法是使用QPlainTextEdit小部件来显示控制台输出。下面是一个示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QVBoxLayout, QWidget from PyQt5.QtCore import Qt class ConsoleWidget(QWidget): def __init__(self): super().__init__() self.console_output = QTextEdit() self.console_output.setReadOnly(True) layout = QVBoxLayout() layout.addWidget(self.console_output) self.setLayout(layout) def write_to_console(self, text): self.console_output.moveCursor(QTextEdit.End) self.console_output.insertPlainText(text) self.console_output.moveCursor(QTextEdit.End) QApplication.processEvents() class MainWindow(QMainWindow): def __init__(self): super().__init__() self.console_widget = ConsoleWidget() self.setCentralWidget(self.console_widget) sys.stdout = self.console_widget # 创建一个应用程序 app = QApplication(sys.argv) # 创建主窗口 window = MainWindow() window.show() # 在控制台输出一些文本 print('这是一些控制台输出') # 运行应用程序的主循环 sys.exit(app.exec_()) ``` 上述代码创建了一个自定义的控制台小部件(ConsoleWidget),与一个主窗口(MainWindow)一起使用。通过重定向sys.stdout到自定义控制台小部件,可以将所有print语句的输出重定向到该控制台小部件,并在PyQt5的图形用户界面显示出来。 使用上述代码,控制台输出显示在主窗口(QMainWindow)中的QPlainTextEdit小部件中。在图形用户界面程序的其他地方,可以使用类似的方法来显示控制台输出

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡侃有料

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值