我想实现一个滚动条,可以捕捉到特定值(就像窗口可以捕捉到屏幕的边缘一样)。我的想法是,当我向下拖动滚动条时,它会在接近值时将其捕捉到值。
我的场景是显示3个章节的文本。我希望能够捕捉到章节的开头或结尾。当然,要转到第一章的开头,滚动条可以滚动到顶部,第三章的结尾也是如此。所以我想在滚动条上画两条线来表示第二章和第三章的开始,然后让滚动条的顶部和底部捕捉到这两条线。所以我真的很想在QTextBrowser中使用它,但是我可以用QSnapScrollBar来控制QTextBrowser,我只是不知道从哪里开始。
任何帮助都将不胜感激。
发布于 2010-03-09 13:54:09
您可以滚动自己的自定义scrollbar类,该类继承自QScrollBar或QAbstractSlider,并覆盖valueChanged(int)信号。一些基本的伪代码:
if currentValue is within 5 of snapvalue1:
set scrollbar value to snapvalue1
elsif currentValue is within 5 of snapvalue2:
set scrollbar value to snapvalue2
...
update/redraw widget尽管我有一种感觉,对于最终用户来说,这可能看起来很不稳定。
您还可以研究pageStep属性(该属性控制使用Page Up/Down键时滚动的距离),或许该属性可以用于您的目的
https://stackoverflow.com/questions/2401972
复制相似问题