QGraphicsItem: Rechteck mit Löchern - möglichst performant?

Alles rund um die Programmierung mit Qt
Antworten
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

QGraphicsItem: Rechteck mit Löchern - möglichst performant?

Beitrag von -=Freaky=- »

hi,

ich habe eine frage bzgl. eines QGraphicsItems, wie im titel beschrieben.
ich verwende momentan ein QGraphicsPathItem und haette das eigentlich gerne etwas performanter, sprich, "schneller" besonders beim skalieren.

stellt euch ein typisches 4gewinnt-feld vor.
eine flaeche mit 7x6 loechern drin und die spielsteine muessen "dahinter" runterfallen, bis sie unten liegenbleiben.
momentan, wie gesagt, ein QGraphicsPathItem, dem ich ein "roundedRect" und diverse "ellipses" hinzugefuegt habe.

wenn ich im QGraphicsView im resizeEvent nun folgendes habe:

Code: Alles auswählen

fitInView(scene()->itemsBoundingRect(), Qt::KeepAspectRatio);
wobei das besagte "spielfeld" mit loechern natuerlich teil der scene ist, dann ruckelt das auch auf wirklich nicht langsamen rechnern ziemlich. manchmal haengt es bis zu 1 sekunde, bis das "spielfeld" entspr. skaliert ist.

nun fallen mir allerdings auch keine wirklich guten alternativen zu diesem aufbau ein.
vllt. irgendwie prozedural eine textur mit transparenten kreisen an den stellen der "loecher" erstellen und ein QGraphicsPixmapItem benutzen, aber das klingt daemlich ...
ansonsten wuesste ich nichts sinnvolles, sodass man wirklich durch diese flaeche durch die items der hinteren ebenen sehen kann.

habt ihr vllt. einen oder gerne auch mehrere vorschlaege fuer mich?

vielen dank im voraus!

mfg,
julian
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Man kann das doch ohne Probleme in 7x6 Items aufteilen.
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

kann man das?
also klar, wenn man ein statisches feld hat, geht das.
aber ich wuesste nicht, wie ich das mit mehreren items anstellen soll, wenn man bspw. hinter dem "spielfeld" noch die bewegungsanimationen der fallenden spielsteine oder so etwas sehen soll, die man eben nur durch die loecher sehen kann.

falls du dafuer einen ansatz hast, habe ich ihn nicht und es waere nett, wenn du ihn mir erklaeren koenntest. :)

mfg,
julian
Antworten