【问题标题】:A scrollbar event when scrolling?滚动时的滚动条事件?
【发布时间】:2011-10-26 23:52:11
【问题描述】:

我需要一个事件来检测用户是否将滚动条位置移动到另一个位置。

换句话说,如果用户向上/向下滚动,是否有可能捕捉到一个信号,以便我知道滚动已经改变了它的位置?

我认为这并不重要,但我指的滚动条在 QGraphicsView 内。

问候。

编辑:

QGraphicsView 用于在屏幕上显示项目,如果这些项目太大,它会显示我所指的滚动条。我需要知道用户何时更改这些滚动条的位置。

【问题讨论】:

    标签: c++ python qt events pyqt


    【解决方案1】:

    滑块有一个sliderMoved(int value) 信号,其中值是滑块的新位置。

    【讨论】:

    • 我已阅读此页面 (doc.qt.nokia.com/latest/qslider.html),但它不在 QGraphicsView 中。这两者之间的区别在于 QSlider 似乎被用于视频播放器的滑块之类的东西,或者类似的东西。 QGraphicsView 用于在屏幕上显示项目,如果这些项目太大,它会显示我所指的滚动条。我需要知道用户何时更改这些滚动条的位置。
    • 你不能从 QGraphicsView 访问 Horizo​​ntalScrollBar 和 verticalScrollBar 吗?
    • 哦,是的。你说得对,我的朋友。我已经能够使用 verticalScrollBar() 方法做我想要访问它的事情。我使用了它的“valueChanged()”信号。谢谢!!
    【解决方案2】:

    如果您需要在滚动条位置更改时得到通知,您需要继承QGraphicsView 并重新实现QWidget::mouseMoveEvent(QMouseEvent*)。为此,您还需要启用鼠标跟踪。 Here is Qt 4.7 QGraphicsView reference.

    【讨论】:

    • 解决方案是通过其方法访问滚动条并使用我正在寻找的信号,正如我在另一篇文章中所说的那样。不管怎样,谢谢你的回答^^。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 2021-07-16
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    相关资源
    最近更新 更多