[英]How to receive scrollbar mouse events for QGraphicsView
在qt小部件QGraphicsView
我想检测鼠标按下,鼠标释放和鼠标移动事件。 我从QGraphicsView
派生了一个类,并且重写了以下功能:
现在,除了滚动条所在的区域(属于QGraphicsView
一部分)之外,几乎所有地方都可以检测到这些鼠标事件。 我希望能够捕获这些事件并手动移动滚动条。
编辑:
我正在尝试在Windows环境中模拟第二个鼠标发送WM_LBUTTONDOWN,...事件。 我也希望能够为QGraphicsView
滚动条检测到此事件。 除了检测事件之外,我还想知道event-> x()和event->()y位置。
QGraphicsView
继承了QAbstractScrollArea
类。 因此,可以使用QAbstractScrollArea::verticalScrollbar
和QAbstractScrollArea::horizontalScrollbar
方法访问滚动条小部件。
一旦您可以访问滚动条对象,甚至不必使用事件过滤器,因为QScrollBar
继承了QAbstractSlider
并因此提供了信号:
QAbstractSlider::sliderPressed()
QAbstractSlider::sliderReleased()
因此,您可以将它们连接到插槽,例如:
connect(horizontalScrollBar(), SIGNAL(sliderPressed()), this, SLOT(doSomething()));
connect(horizontalScrollBar(), SIGNAL(sliderReleased()), this, SLOT(doSomething()));
如果您需要事件的位置,则必须使用事件过滤器。 您可以在小部件对象上安装事件过滤器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.