Seite 1 von 1

Welche Klassen benutzen für Gitter mit "Bausteinen"

Verfasst: 18. Juni 2009 12:56
von sieben
Hallo ,

ich bin völlig neu bei Qt und habe die ersten Versuche mit Beispielen und Signals & Slots erfolgreich hinter mich gebracht.

Ich kenne mich also noch nicht so gut aus und wüsste aber gerne, in welche Richtung ich schauen müsste, um folgendes Problem in Angriff zu nehmen.

Vielleicht ist ja jemand so nett und kann mir als altgedienter Qtler ein paar wichtige Hinweise auf Klassen, Möglichkeiten etc. geben :)

Ich brauche eine Anordnung von "Bausteinen" in einem Gitterraster, also quasi wie Karopapier, vielleicht 40*40px.
Diese "Bausteine" sind selbst in der Höhe nur so groß wie ein Kästchen, können in der Breite aber variieren. Das soll auch der User über einen "Knopf" oder so etwas am Baustein rechts z.B. - wenn ich es selbst zeichnen muss, vielleicht einfach ein Rechteck anderer Farbe - durch Ziehen bewerkstelligen, auch hier nur über ganze Kästchen des Rasters.

Man soll die Bausteine außerdem umher ziehen können. Wichtig dabei ist, dass sie eben immer bei den Kästchen einrasten.
Irgendwie muss ich dann ihre Position und Ausdehnung im Gitterraster speichern und darauf zugreifen können, ich würde sie auch gerne beschriften. Man kann sie sich also einfach als Rechtecke mit Schrift drin und einem Knöpfchen zum länger/kürzer machen vorstellen.

Bislang scheint es mir, als müsste ich mich näher mit "GraphicsView" auseinandersetzen...
Gibt es zu diesem Problem kompetenten Rat, Tipps oder Hinweise? :)
Ich hoffe, ich konnte das einigermaßen beschreiben...


Viele Grüße,
sieben

Verfasst: 18. Juni 2009 13:11
von upsala
Mit der QGraphicsView liegst du schon mal richtig. Ob eine Bewegung für ein Item erlaubt ist, kann man für jedes Item separat einstellen. (QGraphicsItem::ItemIsMovable)

Mit itemChange kannst du die Positionen nachkorriegieren um einzurasten.

Das 40.000Chips-Example wäre event. auch recht hilfreich.

Verfasst: 18. Juni 2009 15:20
von sieben
Dankeschön, das ging ja schnell! :)

Ob mir wohl auch QGraphicsWidget helfen könnte?
Dann könnte ich ja so etwas ähnliches wie QSizeGrip da hinein setzen, oder? Naja, vielleicht bleib ich erstmal beim QGraphicsItem...

Verfasst: 18. Juni 2009 15:34
von upsala
Versuchen könntest du es, ob es funktioniert weis ich aber nicht.