相关文章推荐
帅气的红茶  ·  pyc - Top 500件pyc - ...·  1 年前    · 
爱听歌的猴子  ·  shell的foreach ...·  1 年前    · 

There are two ways to read the wheel event delta: angleDelta() returns the delta in wheel degrees. This value is always provided. pixelDelta() returns the delta in screen pixels and is available on platforms that have high-resolution trackpads, such as macOS. If that is the case, source() will return Qt::MouseEventSynthesizedBySystem.

在Qt5中有两种读取鼠标滚轮事件滚动增量的方法:

  • angleDelta()返回滚轮度数的增量, 始终提供此值
  • pixelDelta()返回屏幕像素的增量,可以在具有高分辨率触摸板的平台上使用,比如macOS 如果是这样,source()将返回Qt::MouseEventSynthesizedBySystem,但在普通设备中source()将返回Qt::MouseEventNotSynthesized,并且pixelDelta()返回的是QPoint(0,0)
  • delta(),新版的Qt已经将其废除,它的返回值相当于angleDelta()的返回值的y点坐标

利用QWheelEvent的delta()函数获得滚轮滚动的距离值,通过此值判断滚轮滚动的方向。若delta大于0,则表示滚轮向前(远离用户的方向),小于零则表明向后,(靠近用户的方向)。
鼠标的滚动事件,滚轮每滚动1度,相当于移动了8度,而常见的滚轮鼠标拨动一下的滚动角度为15度,因此滚轮拨动一下相当于移动了120度。

void MainWindow::wheelEvent(QWheelEvent *event){
QPoint numPixels = event->pixelDelta();
    QPoint numDegrees = event->angleDelta();
    int delta = event->delta ();
    qDebug() << "numPixels:"<<numPixels;
    qDebug() << "numDegrees:"<<numDegrees;
    qDebug() << "delta:"<<delta;
    qDebug() << "the wheel event source: "<<event->source ();
    if(numDegrees.y()>0){
        qDebug() << "向前滚动"<<numDegrees.y();
    }else{
        qDebug() << "向后滚动"<<numDegrees.y();

当上下滚动滑轮时,有如下显示:

numPixels: QPoint(0,0)
numDegrees: QPoint(0,120)
delta: 120
the wheel event source:  Qt::MouseEventNotSynthesized
向前滚动 120
numPixels: QPoint(0,0)
numDegrees: QPoint(0,-120)
delta: -120
the wheel event source:  Qt::MouseEventNotSynthesized
向后滚动 -120

综上所述,要判断鼠标滚轮滚动方向,可以使用QWheelEvent的delta()和angleDelta()函数,但是delta()函数在新版Qt中已被废除,所以最好使用angleDelta().y()的值来判断。

There are two ways to read the wheel event delta: angleDelta() returns the delta in wheel degrees. This value is always provided. pixelDelta() returns the delta in screen pixels and is available on platforms that have high-resolution trackpads, such as mac
鼠标滚轮实现图像放大缩小的主要思想:通过wheelEvent来获得鼠标滚轮angleDelta,即滚轮转角。然后通过数据类型转换,将读取的值转换成整型数值叠加到图像的尺寸长和宽上,从而实现图像的放大和缩小。 注意:滚轮向上滑转角为正,所以图像放大。滚轮向下滑转角为负,所以图像缩小。 下边直接上代码,头文件中只需要加上使用鼠标滚轮的声明函数就行: void wheelEvent(QWheelEve...
Qt中,鼠标事件被封装成.QMouseEvent对象,QMouseEvent中包含一些参数,用描述鼠标事件。 在QT中,鼠标事件包含:鼠标按键按下,鼠标按键释放,鼠标双击事件鼠标移动事件。 分别由下面的event handler来处理: virtual void mousePressEvent(QMouseEvent *event); virtual void mouseReleaseE... 鼠标事件滚轮事件 QMouseEvent类用于表示一个鼠标事件,当按下鼠标或者移动鼠标时就会产生鼠标事件,利用QMouseEvent类可以获取鼠标时哪个键给按下了 QWheelEvent类用于表示鼠标滚轮事件,在这个类中主要是获取滚轮移动的方向和距离 我们就用一个实际例子来重写下鼠标滚轮事件 1.把鼠标的型状改为小手 2.双击使窗口全屏和缩小 3.鼠标移动来拖动窗口 4.对文本框中的内容通过滚轮进行内容的放大和缩小 5.点击右键把
使用QT5鼠标事件滚轮事件 ----完成鼠标左键拖动窗口,双击全屏,滚轮放大缩小窗口大小          这里使用的是QMouseEvent类里面的鼠标事件,通常进行重定义部件的鼠标事件处理函数来实现自定义的内容操作。同样,鼠标滚轮操作是利用QWheelEvent实现滚轮事件。 voidmousePressEvent(QMouseEvent *event);这个是鼠标按下的时
一定要坚持创作更多高质量博客哦, 小小红包, 以资鼓励, 更多创作活动请看: 新星计划2023: https://marketing.csdn.net/p/1738cda78d47b2ebb920916aab7c3584?utm_source=csdn_ai_ada_redpacket 新星计划2023: https://marketing.csdn.net/p/1738cda78d47b2ebb920916aab7c3584?utm_source=csdn_ai_ada_redpacket 上传ChatGPT/计算机论文等资源,瓜分¥5000元现金: https://blog.csdn.net/VIP_Assistant/article/details/130196121?utm_source=csdn_ai_ada_redpacket 新人首创任务挑战赛: https://marketing.csdn.net/p/90a06697f3eae83aabea1e150f5be8a5?utm_source=csdn_ai_ada_redpacket Microsoft Edge功能测评!: https://activity.csdn.net/creatActivity?id=10403?utm_source=csdn_ai_ada_redpacket 职场解惑讨论会: https://activity.csdn.net/creatActivity?id=10427?utm_source=csdn_ai_ada_redpacket 可持续能源技术真的能改变世界吗?: https://activity.csdn.net/creatActivity?id=10425?utm_source=csdn_ai_ada_redpacket 无效数据,你会怎么处理?: https://activity.csdn.net/creatActivity?id=10423?utm_source=csdn_ai_ada_redpacket 物联网技术正在如何影响我们的生活: https://activity.csdn.net/creatActivity?id=10421?utm_source=csdn_ai_ada_redpacket 生物识别技术能否成为应对安全挑战的绝佳选择?: https://activity.csdn.net/creatActivity?id=10411?utm_source=csdn_ai_ada_redpacket 应届生如何提高职场竞争力: https://activity.csdn.net/creatActivity?id=10409?utm_source=csdn_ai_ada_redpacket 讯飞星火大模型将超越chatgpt?: https://activity.csdn.net/creatActivity?id=10407?utm_source=csdn_ai_ada_redpacket 职场新人备忘录: https://activity.csdn.net/creatActivity?id=10405?utm_source=csdn_ai_ada_redpacket “裸奔”时代下该如何保护网络隐私: https://activity.csdn.net/creatActivity?id=10401?utm_source=csdn_ai_ada_redpacket VR vs AR:哪种技术更有潜力改变未来?: https://activity.csdn.net/creatActivity?id=10399?utm_source=csdn_ai_ada_redpacket 蓝桥杯备赛指南分享: https://activity.csdn.net/creatActivity?id=10317?utm_source=csdn_ai_ada_redpacket