Qt5.4文档翻译:QWheelEvent类,QWheelEvent Class
QWheelEvent 类,包含着一些参数,用来描述一个滚轮事件。 详细说明……
头文件: |
#include <QWheelEvent> |
qmake指令: |
QT += gui |
继承: |
QWheelEvent 类,包含着一些参数,用来描述一个滚轮事件。
滚轮事件 会被发送到鼠标光标下方的部件,但是,如果该部件不处理该事件的话,则,事件会被发送到当前具有焦点的部件。对于鼠标滚轮 和触摸板的滚动手势,都会产生滚轮事件。 有两种方法可用来读取滚轮事件的变动值: angleDelta () ,返回滚轮滚动的度数。 这个值一定会提供。 pixelDelta () ,返回的是, 以屏幕像素点数表示的滚动值, 在那些带有 高分辨率触摸板的平台上提供,例如 Mac OS X 。
pos () 和 globalPos ()函数返回事件 发生时鼠标指针的位置。
滚轮事件 中包含着一个特殊的接受(accept)标志,表明 ,接收 者是否愿意接收该事件。如果 妳 并不处理该滚轮事件的话,则,应当调用 ignore (); 这将确保该事件被发往亲代部件。
QWidget::setEnabled ()函数 可用来启用或禁用某个部件对于鼠标及键盘事件的处理功能。
事件处理 器函数 QWidget::wheelEvent () 会接收滚轮事件。
参考 QMouseEvent 和 QWidget::grabMouse () 。
返回滚轮滚动的距离,其单位为1/8度。正数值表示,滚轮是向着离开用户的方向滚动的;负数值表示,滚轮是向着朝向用户的方向滚动的。
大部分的鼠标类型都是以15 度为单位进行工作的,在那种情况下,距离值会是 120 的倍数;也就是说,120单位* 1/8 = 15度。
然而,某些鼠标的滚轮精度较高,它们会发送小于120 单位(小于15度)的距离值。为了支持这种可能性,妳可以选择采用以下两种处理方法中的一种:每次发生滚轮事件,就将距离值累加,直到累加值达到120,然后滚动该部件;或者,在每次发生滚轮事件时,部分地滚动该部件,以作出响应。
示例:
void MyWidget::wheelEvent( QWheelEvent *event)
{
QPoint numPixels = event->pixelDelta();
QPoint numDegrees = event->angleDelta() / 8;
if (!numPixels.isNull()) {
scrollWithPixels(numPixels);
} else if (!numDegrees.isNull()) {
QPoint numSteps = numDegrees / 15;
scrollWithDegrees(numSteps);
}
event->accept();
}
注意: 在那些支持滚动 阶段 的平台上, 以下情况下距离值可能是空值:
•. 滚动即将开始 ,但距离目前未发生变化 ( Qt::ScrollBegin ) ,
•. 或者 ,滚动已经结束,而距离不再变化 ( Qt::ScrollEnd ) 。
HxLauncher: Launch Android applications by voice commands