滚动QScrollArea pyqt

时间:2012-08-09 15:37:12

标签: python scroll pyqt

如何自动滚动滚动区域?例如,当有新的更新而不是滚动区域的视图保持不变时,我想要使用新文本。可以将其想象为在CMD控制台中,当您键入命令时,它会使用输出自动滚动。

2 个答案:

答案 0 :(得分:3)

使用QTextEdit.moveCursor设置要滚动到的位置,然后使用QTextEdit.ensureCursorVisible滚动到该位置:

textedit.moveCursor(QtGui.QTextCursor.End)
textedit.ensureCursorVisible()

答案 1 :(得分:3)

我只是回答另一个答案,但我只是不知道在分配的空间中用短语表达的最好方法。

QScrollArea是设计自定义PyQt小部件时非常有用的小部件 - 我经常使用它们。诸如推出小部件,卡片小部件,可以显示多个子小部件以及需要滚动的任何东西都是非常有用的实用程序。我不同意QScrollArea本身没什么用处的想法。

QTextEdit答案解决了开发人员面临的问题 - 但仅仅因为它发生了问题才是真正的问题。如果您正在尝试滚动文字编辑,请使用该答案。

但是,如果您正在搜索实际问题的答案并遇到此主题,那么向下滚动QScrollArea的方法是实际修改滚动条的值。

area = QScrollArea(parent)
vbar = area.verticalScrollBar()
vbar.setValue(vbar.maximum())

如果要滚动到特定区域或任何内容(例如实现ensureCursorVisible),那么您希望获取要滚动到的区域小部件上的位置,找出其高度的百分比,并应用该值垂直滚动条。 (伪代码)