Closed vvv1954 closed 9 months ago
Можно Меняется здесь
void GraphicsView::wheelEvent(QWheelEvent* event)
{
const auto delta = event->angleDelta().y();
#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
const auto pos = event->pos();
#else
const auto pos = event->position().toPoint();
#endif
static auto sbUpdate = [&delta, this, scale = 3](QScrollBar* sb) { // Warning if create more GraphicsView`s!!
if (App::settings().guiSmoothScSh())
animate(sb, "value", sb->value(), sb->value() - sb->pageStep() / (delta > 0 ? +scale : -scale));
else
sb->setValue(sb->value() - delta);
};
if (event->buttons() & Qt::RightButton) {
if (abs(delta) == 120) {
setInteractive(false);
if (delta > 0)
zoomIn();
else
zoomOut();
setInteractive(true);
}
} else {
switch (event->modifiers()) {
case Qt::ControlModifier:
if (abs(delta) == 120) {
setInteractive(false);
if (delta > 0)
zoomIn();
else
zoomOut();
setInteractive(true);
}
break;
case Qt::ShiftModifier:
if (!event->angleDelta().x())
sbUpdate(QAbstractScrollArea::horizontalScrollBar());
break;
case Qt::NoModifier:
if (!event->angleDelta().x())
sbUpdate(QAbstractScrollArea::verticalScrollBar());
break;
default:
//QGraphicsView::wheelEvent(event);
return;
}
}
mouseMove(mapToScene(pos));
event->accept();
update();
}
Спасибо. Какая версия VS?
Спасибо. Какая версия VS?
VC C++ самый последний и Qt5.12.11 VS2017
Будет переработано, рулетка отдельным инструментом станет.
Колесо зумит при зажатой правой.
Нельзя ли сделать, чтобы зум менялся колесиком мышки? Как, например, в Aspire или VCarve.