我使用QWheelEvent在GraphicsScene上放大/缩小,但问题是当我水平使用鼠标垫时放大/缩小也有效。我想忽略这种情况。我想垂直放大/缩小鼠标垫。
我的代码是:
`void WheeledGraphicsView::wheelEvent(QWheelEvent *event){
setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
double scaleFactor = 1.15;
if(event->delta() > 0) {
scale(scaleFactor, scaleFactor);
}
else {
scale(1.0 / scaleFactor, 1.0 / scaleFactor);
}
// QWheelEvent.orientation();
}
`
也许我可以使用QWheelEvent :: orientation()但我无法使用它。 谢谢!
我解决了这个问题:
WheeledGraphicsView::WheeledGraphicsView(QWidget *parent) : QGraphicsView(parent){
}
void WheeledGraphicsView::wheelEvent(QWheelEvent *event){
if(event->orientation() == Qt::Horizontal) {
event->ignore();
}
else {
if(event->delta() > 0) {
scale(ZOOM_RATIO_PER_WHEEL_TICK, ZOOM_RATIO_PER_WHEEL_TICK);
}
else {
scale(1.0 / ZOOM_RATIO_PER_WHEEL_TICK, 1.0 / ZOOM_RATIO_PER_WHEEL_TICK);
}
}
}