QScrollBar Snap to value

时间:2010-03-08 14:31:59

标签: qt scrollbar

我想要实现一个可以捕捉到特定值的滚动条(比如窗口可以捕捉到屏幕的边缘)。我的想法是,当我向下拖动滚动条时,它会在接近它时将条形图捕捉到值。

我的方案显示了3章文字。我希望能够捕捉到章节的开头或结尾。当然,要转到第一章的开头,滚动条可以滚动到顶部,同样可以滚动到第三章的末尾。因此,我想在滚动条上绘制两行来表示第二章和第三章的开头,然后让滚动条的顶部和底部对齐这些行。所以我真的想在QTextBrowser中使用它,但我可以用QTextBrowser来控制QSnapScrollBar我只是不知道从哪里开始。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以滚动自己的自定义滚动条类,该类继承自QScrollBarQAbstractSlider并覆盖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键时滚动的距离),也许可用于实现您的目的