QT: :QWheelEvent

转载 2015年11月18日 22:28:58
QWheelEvent 类参考
QWheelEvent类包含用于描述鼠标滑轮事件的相关参数。
#include<QWheelEvent>
继承至:QInputEvent

公有函数:

  1. QWheelEvent ( const QPoint & pos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,   
  2.               Qt::Orientation orient = Qt::Vertical )  
  3.                 
  4. QWheelEvent ( const QPoint & pos, const QPoint & globalPos, int delta, Qt::MouseButtons buttons,  
  5.               Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical )  
  6.                 
  7. Qt::MouseButtons buttons () const  
  8. int delta () const  
  9. const QPoint & globalPos () const  
  10. int globalX () const  
  11. int globalY () const  
  12. Qt::Orientation orientation () const  
  13. const QPoint & pos () const  
  14. int x () const  
  15. int y () const  
1个从父类QInputEvent继承过来的公有函数:Qt::KeyboardModifiersmodifiers () const

6个从QEvent继承过来的公有函数:

  1. QEvent ( Type type )  
  2.              virtual ~QEvent ()  
  3.              void accept ()  
  4.              void ignore ()  
  5.              bool isAccepted () const  
  6.              void setAccepted ( bool accepted )  
  7.              bool spontaneous () const  
  8.              Type type () const  
详细描述:

    QWheelEvent类用于描述鼠标转轮(middle_mouse_button)事件.当鼠标指针定位于一个窗口界面之上时,
    滑动鼠标转轮会产生一系列事件(QWheelEvent),这些事件会被传送给鼠标指针所在的父窗口,如果此窗口不处理此事件(Event)
    该鼠标事件默认情况下会传送给具有输入焦点的窗口。 计算滑轮滚动轴滑动的距离可以用函数delta()计算,函数pos()和globalpos()
    可以返回再一次鼠标事件中鼠标指针的当前位置。
    
    一个鼠标滑轮事件包含一些指定的接受标志用于指出该事件是否会被接收和处理,如果不处理该事件可以调用ignore(),
    这样可以保证该事件会被传送给鼠标指针所在的父窗口。
    
    函数QWidget::setEnabled()可以用于禁止/允许一个窗口接收鼠标和键盘事件。
    事件处理函数QWidget::wheelEvent()被用于接收鼠标滑轮事件。

    

成员函数描述:

  1. QWheelEvent::QWheelEvent ( const QPoint & pos, int delta, Qt::MouseButtons buttons,   
  2.                            Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical )  
  3. 创建一个wheelEvent对象,参数pos代表鼠标指针在窗口中的当前位置,通常用globalPos()初始化QCursor::pos(),但并不总是正确的。  
  4. 如果需要显示指定一个全局位置,可以用其他的构造函数。  
  5.   
  6.   
  7. 参数button用于描述在鼠标事件过程中鼠标按键的状态(state),delta()可以返回滑动的距离,参数modifiers用于描述在鼠标事件中  
  8. 鼠标状态位改变时的参数值 (比如鼠标的左中右按键的切换),参数orient用于指示鼠标滑轮滚动的方向(比如向上或者向下)。  
  9.   
  10.   
  11. QWheelEvent::QWheelEvent ( const QPoint & pos, const QPoint & globalPos, int delta, Qt::MouseButtons buttons,   
  12.                            Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical )  
  13. 创建一个wheelEvent对象,参数pos用于指出鼠标指针在当前窗口中的当前位置,要返回鼠标指针在全局坐标系统中的位置可以调用globalPos(),  
  14. 函数delta()用于返回鼠标滑轮滑动的距离,参数modifiers用于描述在鼠标事件中鼠标状态位改变时的参数值 (比如鼠标的左中右按键的切换),  
  15. 参数orient用于指示鼠标滑轮滚动的方向(比如向上或者向下)。  
  16.   
  17. Qt::MouseButtons QWheelEvent::buttons () const  
  18. 当事件发生时,返回鼠标状态。  
  19.   
  20. int QWheelEvent::delta () const  
  21. 当鼠标滑轮在滚动时用于返回滑动的距离,该值等于鼠标旋转角度的8倍。正数值表示滑轮相对于用户在向前滑动,  
  22. 相反,负数值表示滑轮相对于用户是向后滑动的。  
  23.   
  24. 大多数鼠标工作在单步15度的情况下(意思是鼠标转轮滑动一圈是360度,细化成单步就是1度,那么鼠标转轮滑动一度对应于窗口界面单位尺度的8倍),在这种情况下,delta的返回值是120的倍数。计算公式:120 units/8=15度。  
  25.   
  26. 但是,有些鼠标有更好的解决方案,而且对顶单步值小于15度即delta()的返回值比120要小,为了支持这种可能性,在鼠标事件中既可以累积该返回值,  
  27. 直到该返回值累加到120为止,然后滚动窗口;或者可以小幅度的滚动窗口作为对每一次鼠标滚动事件的响应,从而计算该返回值。例如:  
  28.  void MyWidget::wheelEvent(QWheelEvent *event)  
  29.  {  
  30.      int numDegrees = event->delta() / 8;  
  31.      int numSteps = numDegrees / 15;  
  32.   
  33.   
  34.      if (event->orientation() == Qt::Horizontal) {         
  35.          scrollHorizontally(numSteps);       //水平滚动  
  36.      } else {  
  37.          scrollVertically(numSteps);       //垂直滚动  
  38.      }  
  39.      event->accept();      //接收该事件  
  40.  }  
  41.   
  42. const QPoint & QWheelEvent::globalPos () const  
  43. 返回鼠标指针的全局位置,这个特性对于异步窗口系统很重要譬如X11,然后当你滑动窗口作为鼠标响应事件时,  
  44. 可以用globalPos()函数与QCursor::pos()函数进行区分当前鼠标指针所在的位置。  
  45.   
  46. int QWheelEvent::globalX () const  
  47. 返回鼠标指针全局坐标中X轴所对应的坐标值。  
  48.   
  49. int QWheelEvent::globalY () const  
  50. 返回鼠标指针全局坐标中Y轴所对应的坐标值。  
  51.   
  52. Qt::Orientation QWheelEvent::orientation () const  
  53. 返回鼠标转轮滚动的方向,当为整数值时表示向前,负数值时表示向后。方向参考系可选用户本身。  
  54.   
  55. const QPoint & QWheelEvent::pos () const  
  56. 返回鼠标指针相对于窗口的坐标值QPoint(x,y),如果滚动窗口可以用globalPos()替换本函数从而返回全局坐标值。  
  57.   
  58. int QWheelEvent::x () const  
  59. 返回鼠标指针相对于窗口的相对位置值的X坐标值。  
  60.   
  61. int QWheelEvent::y () const  
  62. 返回鼠标指针相对于窗口的相对位置值的Y坐标值。  

相关文章推荐

QT 鼠标和滚轮事件学习

在界面上按鼠标左键来拖动窗口,双击来使其全屏,按着鼠标右键则使其指针变为一个自定义的图片,而使用滚轮则可以放大或者缩小编辑器中的内容。...

QT中滚轮事件QWheelEvent实例

QWheelEvent类包含用于描述鼠标滑轮事件的相关参数。头函数:#include,继承至:QInputEvent公有函数:1)QWheelEvent::QWheelEvent ( const QP...

QWheelEvent 使用分析一例

QWheelEvent 的 Manual中如此很简单的一句话,你真的理解了么?

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数。 1.   最基本的算法是,从小到大遍历: for (i = 2 to A -1)          if (i * B > A)...

利用K-means聚类算法根据经纬度坐标对中国省市进行聚类

K-means聚类算法是一种非层次聚类算法,在最小误差的基础上将数据划分了特定的类,类间利用距离作为相似度指标,两个向量之间的距离越小,其相似度就越高。程序读取全国省市经纬度坐标,然后根据经纬度坐标进...

Radon变换理论介绍与matlab实现--经验交流

本人最近在研究Radon变换,在查阅了各种资料之后在此写下个人的理解,希望与各位牛牛进行交流共同进步,也使得理解更加深刻些。 Radon变换的本质是将原来的函数做了一个空间转换,即,将原来的XY平...

CT图像重建技术

由于csdn贴图不方便,并且不能上传附件,我把原文上传到了资源空间CT图像重建技术 1.引言 计算机层析成像(Computed Tomography,CT)是通过对物体进行不同角度的射线投影测量而...

Matlab绘图-很详细,很全面

Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Ma...

linux查找目录下的所有文件中是否含有某个字符串

查找目录下的所有文件中是否含有某个字符串  find .|xargs grep -ri "IBM"  查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名  find .|xargs g...

Radon变换入门matlab CT原理

http://hi.baidu.com/hi9394/blog/item/0d492b8bfd714700c8fc7aa9.html 简介 图像投影,就是说将图像在某一方向上做线性积分(或理解为累...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QT: :QWheelEvent
举报原因:
原因补充:

(最多只允许输入30个字)