Ich möchte im eigenen Widget zeichnen, dabei soll (0,0) unten links sein.
Diese funktioniert mit dem nachfolgenden Codefragment, ich muss jedoch y mit negativen Werten eingeben.
QPainter painter(this);
int wl = width();
int h = height();
painter.setViewport(0, h, wl, h);
painter.drawRect(0, 0, wl-1, -(h-1));
Was muss ich ändern, damit ich ein positives y beim Zeichen verwenden kann?
Nullpunkt (0,0) soll in eigenem Widget unten links sein
-
Apfelkuchen58
- Beiträge: 1
- Registriert: 17. Mai 2009 16:47
Genau kann ich dir keine Lösung nennen (kein QoS-Vertrag unterschrieben), habe selbst erst einmal was selbst gezeichnet (und da auch nur mit Qwt).
Aber schau dir mal die map-Funktionen an, ob dich die weiter bringen:
http://doc.trolltech.com/4.5/qwidget.html#mapFrom
Ansonsten schau mal hier rein ob da was dabei ist:
http://doc.trolltech.com/4.4/examples.html#painting
Aber schau dir mal die map-Funktionen an, ob dich die weiter bringen:
http://doc.trolltech.com/4.5/qwidget.html#mapFrom
Ansonsten schau mal hier rein ob da was dabei ist:
http://doc.trolltech.com/4.4/examples.html#painting
Prinzipiell sollte man versuchen, sich an die "verdrehte" y-Achse zu gewöhnen, geht schneller als man denkt 
Ansonsten hilft
1) QPainter::setTransform()
2) QTransform::scale( 1.0, -1.0 )
sollte das positive Malen in y-Richtung nach oben hin durchführen.
Bedenke, dass dein Koordinatenursprung immer noch links oben ist. Da hilft ein translate() (QPainter, oder QTransform, das Testen überlass ich dir).
Grüße
Franz
Ansonsten hilft
1) QPainter::setTransform()
2) QTransform::scale( 1.0, -1.0 )
sollte das positive Malen in y-Richtung nach oben hin durchführen.
Bedenke, dass dein Koordinatenursprung immer noch links oben ist. Da hilft ein translate() (QPainter, oder QTransform, das Testen überlass ich dir).
Grüße
Franz