首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pyQt5滚动条自动跟随

pyQt5滚动条自动跟随
EN

Stack Overflow用户
提问于 2019-09-30 17:29:23
回答 1查看 48关注 0票数 0

我似乎不能让pyqt5中的滚动条自动跟随,也不能在y位置不在末尾时自动跟随。

我试过了:

代码语言:javascript
运行
复制
    ccursor=self.textCursor()
    sbar=self.verticalScrollBar()
    # get the max value
    csbarval=float(sbar.value())
    maxsbarval=float(sbar.maximum())

    print("sbar value:{}".format(csbarval))
    print("sbar max:{}".format(maxsbarval))

    self.append(data)
    if (float(maxsbarval) > 0.0) and (csbarval/maxsbarval > 0.98):
        ccursor.movePosition(QtGui.QTextCursor.End)

是否有api可以自动执行此操作?

EN

回答 1

Stack Overflow用户

发布于 2019-10-01 00:15:50

是的,所以我在一个安静的地方思考了一下,结果是:

代码语言:javascript
运行
复制
class TEdit(QtWidgets.QTextEdit):
 def scrollbarBehaviour(self,data):

  scrollbar=self.verticalScrollBar()
  current_pos=scrollbar.value()
  current_max=scrollbar.maximum()

  at_bottom_of_text=(current_pos>=current_max -4)

  self.append(data)
  if at_bottom_of_text:
   scrollbar.setValue(scrollbar.maximum())
  else:
   scrollbar.setValue(current_pos)

需要注意的是,在将数据附加到文本区域之前,要弄清楚滚动条是否处于最大值/末尾。另外,需要显式设置滚动条,否则它会自动滚动到末尾。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58165058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档