16 layout = QVBoxLayout()
17 self.setLayout(layout)
19 self.
lineslines = QPlainTextEdit()
20 self.
lineslines.setReadOnly(
True)
21 layout.addWidget(self.
lineslines)
25 layout.addWidget(self.
inputinput)
28 self.
lineslines.setFont(font)
29 self.
inputinput.setFont(font)
36 self.
inputinput.clear()
39 self.
lineslines.appendPlainText(
">>> " + line)
44 code = compile(line,
"<console>",
"eval")
47 code = compile(line,
"<console>",
"single")
49 sterrout = io.StringIO()
50 with contextlib.redirect_stderr(sterrout):
51 with contextlib.redirect_stdout(sterrout):
58 stdstreams = sterrout.getvalue()
60 if stdstreams.endswith(
"\n"):
61 stdstreams = stdstreams[:-1]
62 self.
lineslines.appendPlainText(stdstreams)
64 self.
lineslines.appendPlainText(repr(value))
66 etype, value, tb = sys.exc_info()
68 parent = inspect.currentframe().f_back
70 for frame, ln
in traceback.walk_tb(tb):
72 if frame.f_back == parent:
76 traceback.print_exception(etype, value, tb, limit=-i, file=file)
77 self.
lineslines.appendPlainText(file.getvalue())
79 self.
lineslines.verticalScrollBar().setValue(self.
lineslines.verticalScrollBar().maximum())
def define(self, name, value)