问题描述
有一个众所周知的错误(功能?),与QTpainTextEdit关联的滚动条有时会阻塞valueChanged信号,所以我认为我会覆盖scrollContentsBy()虚拟函数并注意到以这种方式滚动。但是有时也不会调用scrollContentsBy。那么,魔鬼如何才能可靠地注意到QPlainTextEdit已滚动?
解决方法
需要知道滚动是否已更改时,可以使用contentOffset()检查当前内容的偏移量。这是一个受保护的方法,因此您需要将QPlainTextEdit子类化才能调用它。一个警告是,如果内容小于视口,即使内容在视口中移动,它也会返回(0,0),因此最后取决于您对滚动的定义,但是您可以实现一些自定义逻辑,具体取决于您的要求。