void GraphicsView::mousePressEvent(QMouseEvent *event) {
this->fixedPoint = event->pos();
}
void GraphicsView::mouseMoveEvent(QMouseEvent *event) {
if(!this->fixedPoint.isNull()) {
QPointF offset = this->fixedPoint - pos; // вычисляем разность, на которую мышь подвинулась, между начальной точкой и конечной
this->setCenter(this->getCenter() - offset); // находим новую точку-центр, в которую надо передвинуть сцену, и передаем
}
}
void GraphicsView::mouseReleaseEvent(QMouseEvent *event) {
this->fixedPoint = QPoint();
}
void GraphicsView::setCenter(const QPointF ¢erPoint) {
this->center = centerPoint; // center в координатах сцены
this->centerOn(centerPoint); // centerPoint в координатах scene
}
QPointF GraphicsView::getCenter() {
return this->center;
}
Может быть я что-то делаю просто неправильно? Вроде координаты перепроверял, находит и вычисляет корректно.