Seite 1 von 1

[gelöst] QGraphicsView mit Hintergrund-Widget?

Verfasst: 17. März 2010 08:16
von mathies
Hallo,

gibt es eine Möglichkeit, bei einem QGraphicsView ein anderes QWidget als Hintergrund zu nutzen?

Ich möchte mein bestehendes Scene/View-Konzept gerne mit einem anderen Widget (QMapControl) verbinden. Aufgrund der anderen Painterumsetzung beim QGraphicsView ist ein einfaches ableiten nicht möglich.

Eine unelegante Lösung wäre den QGraphicsView mit einem transparenten Hintergrund auszustatten und einfach drüber zu legen. Ein zusätzlicher Nachteil ist aber, dass alles dann sehr langsam wird.

Ich hoffe es hat jemand eine Idee. Danke.

Verfasst: 17. März 2010 09:16
von upsala
Irgendwie kommt mir dieser Beitrag bekannt vor...

Eine Idee:

Eigenes Viewport-Widget setzen.
paint-Event abfangen
paintEvent vom eigenen-Widget aufrufen
render/paintEvent von der Scene aufrufen.


2. Idee:
In der drawBackground-Methode den Inhalt deines Widgets 'grabben' und in der Scene einbauen.

Verfasst: 17. März 2010 09:21
von mathies
Danke, ich probier das mal. Mit dem "grabben" hab ich auch überlegt, schien mir aber auch recht aufwendig (also vom rechenaufwand her) :)

Gruß

PS:
Hatte den Beitrag gestern schon mal drin aber dann gelöscht, da es zu gehen schien ohne Probleme. Hatte aber die relevante Ableitung noch nicht drin :(

Verfasst: 18. März 2010 09:38
von mathies
Ok, ich habe jetzt verschiedene Sachen probiert, alles ohne Erfolg. Habe jetzt auch schon mitbekommen, dass ich immer nur nen Painter im PaintEvent nutzen kann und auch immer nur vom eigenen Widget.

Ich habe auch mal das MapWidget einfach direkt als ViewPort gesetzt aber da wird nie ein PaintEvent ausgelöst.

Irgendwie hab ich jetzt keine Idee mehr :(

Verfasst: 18. März 2010 10:50
von mathies
Ok, mit drawBackground() klappt es endlich. Hätte wohl doch gleich diese Idee verfolgen sollen :)