2017-03-14 2 views
0

Ich benutze QGraphicsScene und ich möchte GUI-Elemente erstellen.Qt QGraphicsScene dynamische GUI-Elemente wie Container

Wie soll/sollte ich einen Listencontainer erstellen, d. H. Inventar in einem Spielkontext.

Siehe HIER

Für ein Beispiel dafür, was ich meine. Unten befindet sich ein Inventar-Widget, das dynamisch gefüllt werden kann.

Gibt es Container-Klassen wie die Standard-Listen-Widgets, aber stattdessen für QGraphicsScene?

Im Moment ist die einzige Möglichkeit, die ich sehen kann, ein 'Rechteck' zu zeichnen und manuell 'Quadrate' darüber zu zeichnen und zu verwalten ... was kein Container wäre.

Antwort

1

Jeder QGraphicItem ist effektiv ein Container, weil jeder Artikel optional zu einem QGraphicsItem parented sein kann. Wenn Sie das tun, wirkt sich der Elternteil auf alle seine Kinder aus ... Wenn der Elternteil bewegt wird, bewegen sich die Kinder mit ihm. Wenn für das übergeordnete Element eine Transformation, Sichtbarkeit oder Deckkraft festgelegt wird, gelten diese Änderungen auch für die untergeordneten Elemente.

Grundsätzlich ist Ihr Verständnis korrekt; Sie erstellen ein übergeordnetes Element QGraphicsItem, das einen Container-Umriss zeichnet, und dann haben Sie Kinder, die jeweils ihre Symbole zeichnen oder was auch immer angemessen ist.

Alternativ können Sie Widgets in einem QGraphicsScene verwenden, so dass alle widgetbasierten Container verfügbar sind. Wenn das die Route ist, die Sie besuchen möchten, dann schauen Sie sich die Klasse QGraphicsWidget an.

Dies ist ein komplexes Thema, aber hoffentlich wird dies Ihnen den Anfang machen.

+0

Cool, ich schaute auf QGraphicsWidget, ein QGraphicsLinearLayout mit QGraphicsWidgets hinzufügen ... aber ich möchte QGraphicsItems hinzufügen. Irgendeine Idee wie? – ovg

+0

Ok, ich habe es. Ich habe QGraphicsWidget gerade subklassifiziert, ein QGraphicsLinearLayout hinzugefügt und dann andere Elemente hinzugefügt. Nicht so elegant, wie ich es mir erhofft hätte, aber ok. – ovg

+0

Sie haben weniger Kontrolle über das Aussehen von Widgets in einer Szene als mit benutzerdefinierten Grafikelementen, aber sie sind sicherlich bequem. – goug

Verwandte Themen