网站搭建哪家好百度高级搜索入口
主要检测双指上下滚动、左右滚动、双指放大、缩小。
内容解释看注释,代码在mac上经过测试无问题,windows未测试。
bool WBScreenShotDialog::event(QEvent *event)
{if (event->type() == QEvent::Wheel) { // 双指滚动QWheelEvent *wheel = static_cast<QWheelEvent *>(event);if (wheel->phase() != Qt::ScrollEnd) {QPointF angleDelta = wheel->angleDelta(); //滚轮度数的增量qreal xOffset = angleDelta.x();qreal yOffset = angleDelta.y();/// y轴缩放:y轴变动大于0,且y轴变动大于x轴bool yZoom = (qAbs(yOffset) > 0) && (qAbs(yOffset) > qAbs(xOffset));if (yZoom) { /// 触控板Y方向滚动(双指滑动)updateImageSize(yOffset > 0 ? 1.02 : 0.98);updateRect();update();} else { /// 触控板X方向滚动(双指滑动)}}return true;}else if (event->type() == QEvent::NativeGesture) { /// 双指缩放QNativeGestureEvent *nge = static_cast<QNativeGestureEvent *>(event);if (nge->gestureType() == Qt::ZoomNativeGesture) {double factor = nge->value() * 100;if (factor != 0.){updateImageSize(factor > 0 ? 1.02 : 0.98);updateRect();update();}}return true;}return QDialog::event(event);
}