StupidBeauty
Read times:2448Posted at: - no title specified

Qt5.4文档翻译:QWheelEvent,QWheelEvent Class

QWheelEvent 类,包含着一些参数,用来描述一个滚轮事件。 详细说明……

头文件:

#include <QWheelEvent>

qmake指令

QT += gui

继承

QInputEvent .

详细说明

QWheelEvent 类,包含着一些参数,用来描述一个滚轮事件。

滚轮事件 会被发送到鼠标光标下方的部件,但是,如果该部件不处理该事件的话,则,事件会被发送到当前具有焦点的部件。对于鼠标滚轮 和触摸板的滚动手势,都会产生滚轮事件。 有两种方法可用来读取滚轮事件的变动值: angleDelta () ,返回滚轮滚动的度数。 这个值一定会提供。 pixelDelta () ,返回的是, 以屏幕像素点数表示的滚动值, 在那些带有 高分辨率触摸板的平台上提供,例如 Mac OS X

pos () globalPos ()函数返回事件 发生时鼠标指针的位置。

滚轮事件 中包含着一个特殊的接受(accept)标志,表明 ,接收 者是否愿意接收该事件。如果 并不处理该滚轮事件的话,则,应当调用 ignore (); 这将确保该事件被发往亲代部件。

QWidget::setEnabled ()函数 可用来启用或禁用某个部件对于鼠标及键盘事件的处理功能。

事件处理 器函数 QWidget::wheelEvent () 会接收滚轮事件。

参考 QMouseEvent QWidget::grabMouse ()

成员函数文档

QPoint  QWheelEvent::​ angleDelta () const

返回滚轮滚动的距离,其单位为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 )

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands