breite einer QGraphicsScene nach der Skalierung
breite einer QGraphicsScene nach der Skalierung
Wenn ich mir QGraphicsView "scale(1.05, 1.05)" aufrufe, wird die Ansicht innerhalt des QGraphicView Objekts vergrößert.
Wenn ich dann aber die neue Breite der QGraphicsScene zurück erhalten will, bekomme ich immer nur die Originalgröße zurück.
Wie bekomme ich denn die Breite nach der Skalierung heraus?
Wenn ich dann aber die neue Breite der QGraphicsScene zurück erhalten will, bekomme ich immer nur die Originalgröße zurück.
Wie bekomme ich denn die Breite nach der Skalierung heraus?
wie wird denn da die Skalierung berechnet, wenn ich mehrfach scale ausführe?
Hier führe ich es 6x aus. Wenn ich jetzt aber z.B. 1.05^6 rechte komme ich auf 1.34. Da ist die Originalbreite multipliziert mit diesem Faktor aber immer noch zu klein im Gegensatz zur skalierten Größe der QGraphicScene.
Kann es vielleicht auch sein, dass die Breite bzw. Höhe nach jedem skalieren neu mit 1.05 genommen wird. Hiere habe ich es jetzt ja so berechnet, dass ich immer von der Originalgröße ausgehe.
Code: Alles auswählen
scale(1.05, 1.05);
scale(1.05, 1.05);
scale(1.05, 1.05);
scale(1.05, 1.05);
scale(1.05, 1.05);
scale(1.05, 1.05);
Kann es vielleicht auch sein, dass die Breite bzw. Höhe nach jedem skalieren neu mit 1.05 genommen wird. Hiere habe ich es jetzt ja so berechnet, dass ich immer von der Originalgröße ausgehe.
Höhe und Breite werden gar nicht angerührt! QGraphicsView hält eine QTransform, die beim Zeichnen angewandt wird. Und ein weiteres view.scale() scaliert einfach die aktuelle QTransform. Wenn diese schon skaliert ist, wird natürlich erneut von der bereits durchgeführten Skalierung weiter gemacht.anno1988 hat geschrieben:Kann es vielleicht auch sein, dass die Breite bzw. Höhe nach jedem skalieren neu mit 1.05 genommen wird. Hiere habe ich es jetzt ja so berechnet, dass ich immer von der Originalgröße ausgehe.
Was ist denn eigentlich dein Problem? Was willst du mit den exakten Berechnungen und zigmaligen scale() erreichen?