我有2个脚本:
script_1:执行一些计算并在命令行中打印答案。
script_2:import script_1,然后将script_1中的一些函数连接到pyqt4槽。
script_1不包含PyQt4代码 script_2包含任何相关的PyQt4代码
我将代码放在两个脚本中的原因是我可以修改所有"算法"和script_1中的计算,而不必担心脚本_2总是在变化(添加颜色,按钮和其他小部件。)
当我运行script_1时,查看命令行中的所有输出很有用,但是当我运行script_2时,我正在查看一个PyQt gui,它有一个空白的QTextEdit小部件。我希望命令行中出现的所有文本都进入QTextEdit框,但我找不到办法。
有没有简单或任何方法来实现这一目标?
答案 0 :(得分:1)
您不需要将输入完全重定向到QTextEdit
,只需尝试抓住print
并将消息附加到QTextEdit
:
class Log(object):
def __init__(self, edit):
self.out = sys.stdout
self.textEdit = edit
def write(self, message):
self.out.write(message)
self.textEdit.append(message)
def flush(self):
self.out.flush()
#...
if __name__ == '__main__':
app = QApplication(sys.argv)
print("will not be in textedit")
edit = QTextEdit()
edit.show()
sys.stdout = Log(edit)
print("will be in textedit")