QGraphicsView Skalieren, Rotieren, Verschieben

Alles rund um die Programmierung mit Qt
Antworten
Tuxing
Beiträge: 52
Registriert: 28. Oktober 2009 11:13

QGraphicsView Skalieren, Rotieren, Verschieben

Beitrag von Tuxing »

Hallo zusammen,

ich habe ein QGraphicsView, dass mir ein geladenes Bild darstellt und möchte gerne mittels QVerticalSlider die im Titel beschriebenen Funktionen realisieren. Es gibt 4 Slider (Skalieren,Rotieren,TranslationX und TranslationY). Momentan mache ich es so, dass ich die Transformationsmatrix des QGraphicsViews neu setze, wenn ein Slider seinen Wert verändert.

Code: Alles auswählen

QTransformation transformation;
transformation.scale(1+scaleSliderValue, 1+scaleSliderValue);
transformation.rotate(rotateSliderValue);
transformation.translate(translateXsliderValue,translateYsliderValue);

ui->graphicsView->setTransformation(transformation);
Das Funktioniert auch soweit ganz gut, allerdings hat das Bild diverse "Zuckungen" währen man die Slider bewegt. Wenn ich allerdings das Bild mittels Drag&Drop Funktion bewege ist die Bewegung flüssig. Das heißt ja es muss auch anders gehen.

Kann mir jemand erklären, wie man die Bilder gescheit transformiert? Oder transformiert man nur den Viewport oder ähnliches ??

Grüße und besten Dank
Antworten