[gelöst]Bug in QRectF???
Verfasst: 29. Juli 2010 16:27
Hallo Leute,
Ich habe folgendes vor: In meinem QwtPlot-Objekt brauche ich ein Hintergrundbild, um die Plotpositionen optisch leicht zuordnen zu können. Dafür hab ich also ein PlotSVGItem erstellt und dem Plot zugewiesen. Weiterhin existiert ein QRectF-Objekt, das die Darstellungsgröße speichert.
Nun möchte ich je nach Benutzerwahl das Hintergrundbild ändern können. Dies funktioniert in zwei Fällen optimal und im dritten nicht.
Der einzige Unterschied (neben dem eigentlichen Bild, was aber ausgetauscht werden kann, ohne dass sich das Verhalten ändert) sind die Koordinaten des QRectF-Objekts.
Folgendes funktioniert: Rect.setCoords(0.0, 0.0, 0.8, 0.9);
Das funktioniert aber nicht: Rect.setCoords(-150.0, -150.0, 150.0, 150.0);
In diesem Fall skaliert er das Hintergrundbild irgendwie falsch. Jedenfalls sind die Rechteckkoordinaten richtig gesetzt, aber im Plot ist der Hintergrund voll schwarz, obwohl nur die Ecken des SVGs schwarz sein dürften.
Mit etwas Herumprobieren habe ich heraus gefunden, dass es nur zu diesem Fehlverhalten kommt, wenn beide Eckkoordinaten das Vorzeichen wechseln. Also bspw. (-150, 0, 150, 150) würde richtig skalieren oder (0, -150, 150 , 150) ebenso. Nur liegt dann das Hintergrundbild eben an der falschen Stelle.
Hat jemand eine Erklärung für dieses seltsame Verhalten oder eine Idee für ein Workaround (das Bild zeichnen und dann verschieben habe ich auch probiert, sobald beide Achsen das Vorzeichen wechseln wird falsch skaliert)?
Danke,
Kay
Ich habe folgendes vor: In meinem QwtPlot-Objekt brauche ich ein Hintergrundbild, um die Plotpositionen optisch leicht zuordnen zu können. Dafür hab ich also ein PlotSVGItem erstellt und dem Plot zugewiesen. Weiterhin existiert ein QRectF-Objekt, das die Darstellungsgröße speichert.
Nun möchte ich je nach Benutzerwahl das Hintergrundbild ändern können. Dies funktioniert in zwei Fällen optimal und im dritten nicht.
Der einzige Unterschied (neben dem eigentlichen Bild, was aber ausgetauscht werden kann, ohne dass sich das Verhalten ändert) sind die Koordinaten des QRectF-Objekts.
Folgendes funktioniert: Rect.setCoords(0.0, 0.0, 0.8, 0.9);
Das funktioniert aber nicht: Rect.setCoords(-150.0, -150.0, 150.0, 150.0);
In diesem Fall skaliert er das Hintergrundbild irgendwie falsch. Jedenfalls sind die Rechteckkoordinaten richtig gesetzt, aber im Plot ist der Hintergrund voll schwarz, obwohl nur die Ecken des SVGs schwarz sein dürften.
Mit etwas Herumprobieren habe ich heraus gefunden, dass es nur zu diesem Fehlverhalten kommt, wenn beide Eckkoordinaten das Vorzeichen wechseln. Also bspw. (-150, 0, 150, 150) würde richtig skalieren oder (0, -150, 150 , 150) ebenso. Nur liegt dann das Hintergrundbild eben an der falschen Stelle.
Hat jemand eine Erklärung für dieses seltsame Verhalten oder eine Idee für ein Workaround (das Bild zeichnen und dann verschieben habe ich auch probiert, sobald beide Achsen das Vorzeichen wechseln wird falsch skaliert)?
Danke,
Kay