柚子快報激活碼778899分享:開發(fā)語言 qt觸控板手勢檢測
柚子快報激活碼778899分享:開發(fā)語言 qt觸控板手勢檢測
1、代碼在mac上經過測試無問題; 2、windows上面支持雙指上下、左右滑動檢測,不支持縮放手勢檢測; 3、窗口為popup模式下,不支持QEvent::NativeGesture事件;
1、檢測雙指上下滾動、左右滾動
bool WBScreenShotDialog::event(QEvent *event)
{
if (event->type() == QEvent::Wheel) { // 雙指滾動
QWheelEvent *wheel = static_cast
if (wheel->phase() != Qt::ScrollEnd) {
QPointF angleDelta = wheel->angleDelta(); //滾輪度數(shù)的增量
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;
}
return QDialog::event(event);
}
2、雙指放大、縮小檢測
bool WBScreenShotDialog::event(QEvent *event)
{
if (event->type() == QEvent::NativeGesture) { /// 雙指縮放
QNativeGestureEvent *nge = static_cast
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);
}
柚子快報激活碼778899分享:開發(fā)語言 qt觸控板手勢檢測
參考文章
本文內容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。