PYQT: Jak przechwycić wyjście interpretera Pythona i wyświetlić go w QEditText?
W odniesieniu do postututaj. Czy ktoś może mi wyjaśnić, w jaki sposób dołączyć wyjście instrukcji print do QEditext w PYQT ... Próbowałem kodu podanego powyżej, ale był niekompletny i otrzymałem:
TypeError: connect() slot argument should be a callable or a signal, not 'QTextEdit'
W pierwszym pliku napisałem:
from PyQt4 import QtCore
class EmittingStream(QtCore.QObject):
textWritten = QtCore.pyqtSignal(str)
def write(self, text):
self.textWritten.emit(str(text))
W oddzielnym pliku zaimportowałem pierwszy plik i wygląda to tak:
from PyQt4 import QtGui, QtCore
import os, sys
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.et=QtGui.QTextEdit()
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.et)
sys.stdout = EmittingStream(textWritten=self.et)
def __del__(self):
# Restore sys.stdout
sys.stdout = sys.__stdout__
def normalOutputWritten(self, text):
"""Append text to the QTextEdit."""
# Maybe QTextEdit.append() works as well, but this is how I do it:
cursor = self.et.textCursor()
cursor.movePosition(QtGui.QTextCursor.End)
cursor.insertText(text)
self.et.setTextCursor(cursor)
self.et.ensureCursorVisible()
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Wiem, że mój kod jestniekompletny... Jakiego sygnału powinienem dodać?