QT中滚轮事件QWheelEvent实例

QT中滚轮事件QWheelEvent实例
QWheelEvent类包含⽤于描述⿏标滑轮事件的相关参数。
头函数:#include<QWheelEvent>,继承⾄:QInputEvent
公有函数:
隔磁片11)QWheelEvent::QWheelEvent ( const QPoint & pos, int delta, Qt::MouseButtons buttons,Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical )
2功能与参数:
蝴蝶螺母
3
4创建⼀个wheelEvent对象,
(1)参数pos代表⿏标指针在窗⼝中的当前位置,通常⽤globalPos()初始化QCursor::pos(),但并不总是正确的。如果需要显⽰指定⼀个全局位置,可以⽤其他的构造函数。
(2)参数button⽤于描述在⿏标事件过程中⿏标按键的状态(state),
(3)delta()可以返回滑动的距离,
(4)参数modifiers⽤于描述在⿏标事件中⿏标状态位改变时的参数值(⽐如⿏标的左中右按键的切换),
(5)参数orient⽤于指⽰⿏标滑轮滚动的⽅向(⽔平或者垂直)。
12)QWheelEvent::QWheelEvent ( const QPoint & pos, const QPoint & globalPos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,Qt::Orientation orient= Qt::Vertical )
2功能与参数:
创建⼀个wheelEvent对象,
黄粉虫筛选机(1)参数pos代表⿏标指针在窗⼝中的当前位置,通常⽤globalPos()初始化QCursor::pos(),但并不总是正确的。如果需要显⽰指定⼀个全局位置,可以⽤其他的构造函数。
(2)参数button⽤于描述在⿏标事件过程中⿏标按键的状态(state),
(3)delta()可以返回滑动的距离,
(4)参数modifiers⽤于描述在⿏标事件中⿏标状态位改变时的参数值(⽐如⿏标的左中右按键的切换)
(5)参数orient⽤于指⽰⿏标滑轮滚动的⽅向(⽔平或者垂直)。
13)Qt::MouseButtons QWheelEvent::buttons () const
2当事件发⽣时,返回⿏标状态。
34)int QWheelEvent::delta () const
4当⿏标滑轮在滚动时⽤于返回滑动的距离,该值等于⿏标旋转⾓度的8倍。正数值表⽰滑轮相对于⽤户在向前滑动,相反,负数值表⽰滑轮相对于⽤户是向后滑动的。
小型地源热泵
15)const QPoint & QWheelEvent::globalPos () const
2返回⿏标指针的全局位置,这个特性对于异步窗⼝系统很重要譬如X11,然后当你滑动窗⼝作为⿏标响应事件时,可以⽤globalPos()函数与QCursor::pos()函数进⾏区分当前⿏标指针所在的位置。
36)int QWheelEvent::globalX () const
4返回⿏标指针全局坐标中X轴所对应的坐标值。
57)int QWheelEvent::globalY () const
6返回⿏标指针全局坐标中Y轴所对应的坐标值。
78)Qt::Orientation QWheelEvent::orientation () const
8返回⿏标转轮滚动的⽅向,⽔平 Horizontal = 0x1或者垂直Vertical = 0x2。
19)const QPoint & QWheelEvent::pos () const
2返回⿏标指针相对于窗⼝的坐标值QPoint(x,y),如果滚动窗⼝可以⽤globalPos()替换本函数从⽽返回全局坐标值。
310)int QWheelEvent::x () const
4返回⿏标指针相对于窗⼝的相对位置值的X坐标值。
手机转轴511)int QWheelEvent::y () const
返回⿏标指针相对于窗⼝的相对位置值的Y坐标值。
*******************************************************************************
注意:
⼤多数⿏标⼯作在单步15度的情况下。此时⿏标转轮滑动⼀圈是360度,⿏标滚轮转动⼀圈是24步,计算后就是15度⼀步。
你可以滚动⼀下⾃⼰的⿏标滚轮,感受⼀下滚动过程中的停顿,24个停顿就是24步,⼀般的⿏标都是24步的。
⽽⿏标转轮滑动的⾓度对应于窗⼝界⾯单位尺度的8倍,也就是滚动⼀度,⿏标滚轮在界⾯上滑动的距离(⽐如滚动条等)是8个unit单位,在这种情况下,delta的返回值是120(8*15)的倍数。
但是,有些⿏标有更好的解决⽅案,⽽且对顶单步值⼩于15度即delta()的返回值⽐120要⼩,
为了⽀持这种可能性,在⿏标事件中既可以累积该返回值,直到该返回值累加到120为⽌,然后滚动窗⼝到下⼀个屏幕(实现换页功能);或者可以⼩幅度的滚动窗⼝(实现换⾏功能)作为对每⼀次⿏标滚动事件的响应,从⽽计算该返回值。***************************************************
*******************************导电碳油
例如:
1void MyWidget::wheelEvent(QWheelEvent *event)
2  {
3int numDegrees = event->delta() / 8;//滚动的⾓度,*8就是⿏标滚动的距离
4int numSteps = numDegrees / 15;//滚动的步数,*15就是⿏标滚动的⾓度
5if (event->orientation() == Qt::Horizontal) {
6          scrollHorizontally(numSteps);      //⽔平滚动
7      } else {
8          scrollVertically(numSteps);      //垂直滚动
9      }
10event->accept();      //接收该事件
11  }

本文发布于:2024-09-23 13:28:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/287069.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:事件   返回   滚动   全局   指针
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议