ich frag eigentlich nur ungern da ich jederzeit gewillt bin selber Lösungen für Probleme zu finden aber diesmal find ich selbst nach Stundenlangen suche keine Lösung die mich weiter bringt.
Ich möchte gern eine QGraphicsView mit gedrücktem Mausrad verschieben. Problem ist jedoch, es regt sich nix. Die View bleibt wie und wo sie ist. Zoomen funktioniert prima aber verschieben nicht?
Ich möchte nur ungern QGraphicsView::ScrollHandDrag benutzen da ich den DragMode schon auf QGraphicsView::RubberBandDrag gesetzt habe da es mir etwas mehr nützt, aber vorher hab ich ja auch noch gedacht dass das verschieben kein Problem darstellen dürfte
So schaut es momentan aus:
Code: Alles auswählen
void SymbolEditorView::mouseMoveEvent(QMouseEvent *mouseEvent) {
if ((mouseEvent->buttons() & Qt::MidButton) != 0) {
QPoint moveTo(mouseEvent->pos() - m_startPos);
if (moveTo.manhattanLength() < QApplication::startDragDistance())
return;
qDebug() << "moveTo = " << moveTo << "; moveTo.x() = " << moveTo.x() << ", moveTo.y()" << moveTo.y();
QMatrix matrix;
matrix.translate(moveTo.x(), moveTo.y());
setMatrix(matrix);
// translate(moveTo.x(), moveTo.y());
} else {
QGraphicsView::mouseMoveEvent(mouseEvent);
}
}
void SymbolEditorView::mousePressEvent(QMouseEvent *mouseEvent) {
QGraphicsView::mousePressEvent(mouseEvent);
if (mouseEvent->button() == Qt::MidButton) {
m_startPos = mouseEvent->pos();
setCursor(Qt::ClosedHandCursor);
}
}
void SymbolEditorView::mouseReleaseEvent(QMouseEvent *mouseEvent) {
QGraphicsView::mouseReleaseEvent(mouseEvent);
if (mouseEvent->button() == Qt::MidButton)
setCursor(Qt::ArrowCursor);
}
Gut Schuß
VuuRWerK