在QTextEdit中加载文本,如同在Terminal中一样

时间:2014-03-22 07:54:01

标签: python qt terminal pyqt pyqt4

我愿意使用pyqt4创建一个像QTextEdit这样的终端,但是不知道要编辑什么属性,这样当进程中的文本被转储时,它应该从底部开始然后上升。

对于起点的任何帮助都会非常感激。

干杯。

2 个答案:

答案 0 :(得分:1)

我之前尝试过类似的事情。用于记录。它很痛苦,很多线都很慢。

如果您希望在终端中有很多行累积,那么请考虑编写项目模型并将其附加到视图中。

在调整这种视图的外观方面有很多可能性,它允许显示大量数据中的一小部分而不会变得非常缓慢。它还允许在任何位置快速插入数据。

答案 1 :(得分:0)

每次打印文本中的任何文本时,您都需要基本重置QTextEdit的光标。

假设您有一个名为resultbox的QTextEdit类成员。那么这就是你想要做的 -

def move_cursor_to_end(self):
    cursor = self.resultbox.textCursor()
    cursor.movePosition(QtGui.QTextCursor.End)
    self.resultbox.setTextCursor(cursor)

调用此功能将允许您将文本光标移动到QTextEdit的末尾,以便下次打印任何内容时,它将在其末尾打印。

所以基本上,在打印到QTextEdit时,你可以做这样的事情 -

def print_to_textedit(self, text):
    self.resultbox.insertPlainText(text)
    self.move_cursor_to_end()

这将允许文本从底部开始,随着更多文本出现而向上移动。

希望这就是你要找的东西。