部分Qt内容集合

int QWheelEvent::delta () const
  1. 当鼠标滑轮在滚动时用于返回滑动的距离,该值等于鼠标旋转角度的8倍。正数值表示滑轮相对于用户在向前滑动,  

  2. 相反,负数值表示滑轮相对于用户是向后滑动的。  

  3.   

  4. 大多数鼠标工作在单步15度的情况下(意思是鼠标转轮滑动一圈是360度,细化成单步就是1度,那么鼠标转轮滑动一度对应于窗口界面单位尺度的8倍),在这种情况下,delta的返回值是120的倍数。计算公式:120 units/8=15度。  

  5.   

  6. 但是,有些鼠标有更好的解决方案,而且对顶单步值小于15度即delta()的返回值比120要小,为了支持这种可能性,在鼠标事件中既可以累积该返回值,  

  7. 直到该返回值累加到120为止,然后滚动窗口;或者可以小幅度的滚动窗口作为对每一次鼠标滚动事件的响应,从而计算该返回值。例如:

void MyWidget::wheelEvent(QWheelEvent *event)  
 {  
     int numDegrees = event->delta() / 8;  
     int numSteps = numDegrees / 15;  
  
  
     if (event->orientation() == Qt::Horizontal) {         
         scrollHorizontally(numSteps);       //水平滚动  
     } else {  
         scrollVertically(numSteps);       //垂直滚动  
     }  
     event->accept();      //接收该事件  
 }


你可能感兴趣的:(部分Qt内容集合)