在PyQt5中,我们可以使用textBrowser
来显示print语句输出的内容,具体步骤如下:
步骤一:导入PyQt5模块
首先我们需要导入PyQt5模块:
import sys
from PyQt5.QtGui import QTextCursor
from PyQt5.QtWidgets import QApplication, QMainWindow
步骤二:创建主窗口以及textBrowser
接着我们需要创建主窗口并添加一个textBrowser控件:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 800, 600)
self.textBrowser = QTextBrowser()
self.setCentralWidget(self.textBrowser)
步骤三:重定向打印输出
为了让print语句的输出内容能够显示在textBrowser中,我们需要重定向标准输出流。可以通过重写sys.stdout.write方法实现,具体如下:
class PrintRedirect(object):
def __init__(self, textBrowser):
self.textBrowser = textBrowser
def write(self, str):
self.textBrowser.moveCursor(QTextCursor.End)
self.textBrowser.insertPlainText(str)
self.textBrowser.moveCursor(QTextCursor.End)
步骤四:运行主程序
最后,我们将重定向打印输出的类实例化,并将其作为参数传给主窗口,运行程序即可实现将print语句输出的内容显示在textBrowser中:
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = MainWindow()
sys.stdout = PrintRedirect(main_window.textBrowser)
main_window.show()
sys.exit(app.exec_())
以下是一个完整的示例程序:
import sys
from PyQt5.QtGui import QTextCursor
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextBrowser
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 800, 600)
self.textBrowser = QTextBrowser()
self.setCentralWidget(self.textBrowser)
class PrintRedirect(object):
def __init__(self, textBrowser):
self.textBrowser = textBrowser
def write(self, str):
self.textBrowser.moveCursor(QTextCursor.End)
self.textBrowser.insertPlainText(str)
self.textBrowser.moveCursor(QTextCursor.End)
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = MainWindow()
sys.stdout = PrintRedirect(main_window.textBrowser)
main_window.show()
sys.exit(app.exec_())
当我们执行下面的代码:
print("Hello PyQt5")
我们会看到“Hello PyQt5”被成功地输出到了textBrowser中。
另外,我们还可以通过简单的修改,实现将print输出到文件中:
class PrintRedirectToFile(object):
def __init__(self, filename):
self.file = open(filename, 'a')
def write(self, str):
self.file.write(str)
if __name__ == '__main__':
sys.stdout = PrintRedirectToFile('output.txt')
print('Hello PyQt5')
以上就是完整的“详解PyQt5中textBrowser显示print语句输出的简单方法”的攻略了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解PyQt5中textBrowser显示print语句输出的简单方法 - Python技术站