Zoom auf Mousezeiger

Alles rund um die Programmierung mit Qt
Antworten
abcmann74
Beiträge: 31
Registriert: 3. Mai 2010 11:03

Zoom auf Mousezeiger

Beitrag von abcmann74 »

Hi

ich habe eine GraphicsScene und ein GraphicsView. Zoomen kann ich über das Mausrad mittels der scale() Funktion.
Ich will nun versuchen genau auf die aktuelle Mausposition zu zoomen.

Ich habe schonmal daran gedacht den Anzeigebereich der Scene so zu verschieben, dass die Mausposition immer das Center des Rechtecks ist. Aber damit bin ich irgendwie nicht weit gekommen...

Hat da jemand vllt. noch eine Idee wie ich das sonst noch umsetzen kann?

grüße
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ungefähr so könnte es funktionieren:
translate(-pos)
scale()
translate(+pos)
otternase
Beiträge: 62
Registriert: 25. Januar 2008 12:20

Beitrag von otternase »

könntest Du eventuell das hier suchen?

void QGraphicsView::setTransformationAnchor ( ViewportAnchor anchor )

mit anchor = QGraphicsView::AnchorUnderMouse
abcmann74
Beiträge: 31
Registriert: 3. Mai 2010 11:03

Beitrag von abcmann74 »

danke euch beiden. habe es jetzt so gelöst.

Code: Alles auswählen

void ImageWindow::ZoomIn()
{
  View_->centerOn (CurrentMousePosition_.x(), CurrentMousePosition_.y());
  ScaleImage(1.25);
}
grüße
Antworten