我编写了一个执行测量的程序,目前我通过Spyder IDE启动它。该程序是用Python 3.6.3编写的。 GUI是使用PyQt5制作的,它应该是用户的主要关注点,但我在Spyder控制台中也有{{1}}多个信息。
准备切换到.exe而不是.py,因为不再有控制台了,我想在我的界面添加一个LineEdit,在那里会发生所有的打印。理想情况下,它会显示我的{{1}}和执行期间生成的各种错误消息。 如何将这些打印重定向到LineEdit?
我在研究过程中发现的大部分信息都是关于使LineEdit成为某种类似的Windows cmd,但与我试图做的相比,这些例子过于苛刻。提前致谢。
答案 0 :(得分:0)
快速而简单的方法是重新定义内置打印功能。
from PyQt5 import QtWidgets
IS_EXE = True # There is probably a way to detect this at runtime
class Window(QtWidgets.QPlainTextEdit):
def __init__(self):
super(Window, self).__init__()
self.setReadOnly(True)
if __name__ == '__main__':
app = QtWidgets.QApplication([])
win = Window()
win.show()
# Replace the builtin print function
if IS_EXE:
print = win.appendPlainText
# Print some stuff
print('foo')
print('bar')
app.exec_()