Hallo,
ich habe in meinem View die drawBackground() Methode überschrieben um etwas Benutzerdefiniertes anzuzeigen. Das funktioniert auch ganz gut es gibt nur ein Problem:
Wenn ich die Scene verschiebe, dann wird auch der Hintergrund verschoben, das soll so nicht sein. In der drawBackground() Methode habe ich schon nach dem Rechteck geschaut was da übergeben wird und das sind genau die Scenekoordinaten der View-Eckpunkte, sollte somit also eigentlich passen. Leider scheint das QGraphicsView::drawBackground( painter, rect ), welches ich dann noch aufrufe, das völlig kalt zu lassen, welches rect da angegeben wird.
Wie kann ich erreichen, dass mein Hintergrund stabil im View angezeigt wird auch wenn ich die Scene bewege?
Gruß
QGraphicsView und drawBackground()
Davon habe ich bisher nichts bemerkt - das Darstellen an sich geht super und sehr flott.
Was mir fehlt ist im Moment nur die Möglichkeit zu bestimmen wo die drawBackground() Methode meinen Inhalt hinzeichnet. Muss ich da irgendwie noch das paintEvent() anfassen?
Es soll praktisch nur der Ausschnitt der Scene welcher vom View "abgedeckt" wird mit Inhalt gefüllt werden. Bisher verschiebt sich alles sobald ich die Scene bewege
Was mir fehlt ist im Moment nur die Möglichkeit zu bestimmen wo die drawBackground() Methode meinen Inhalt hinzeichnet. Muss ich da irgendwie noch das paintEvent() anfassen?
Es soll praktisch nur der Ausschnitt der Scene welcher vom View "abgedeckt" wird mit Inhalt gefüllt werden. Bisher verschiebt sich alles sobald ich die Scene bewege
Hallo,
ich habe es jetzt soweit hinbekommen indem ich im QGraphicsView das paintEvent() überschrieben habe und manuell die drawBackground Methode mit einem festen Rechteck aufrufe.
Ich brauche jedoch auch noch das Standard paintEvent() um alle Items usw zu zeichnen. Gibt es da eine Möglichkeit die drawBackground() Methode aus diesem event auszuschließen? Diese wird nämlich im Standard paintEvent auch nochmal aufgerufen und macht alles wieder futsch. Im Moment setze ich ein Flag und ignoriere den drawBackground Aufruf des paintEvents aber ob das immer funktioniert?
ich habe es jetzt soweit hinbekommen indem ich im QGraphicsView das paintEvent() überschrieben habe und manuell die drawBackground Methode mit einem festen Rechteck aufrufe.
Ich brauche jedoch auch noch das Standard paintEvent() um alle Items usw zu zeichnen. Gibt es da eine Möglichkeit die drawBackground() Methode aus diesem event auszuschließen? Diese wird nämlich im Standard paintEvent auch nochmal aufgerufen und macht alles wieder futsch. Im Moment setze ich ein Flag und ignoriere den drawBackground Aufruf des paintEvents aber ob das immer funktioniert?