Seite 1 von 1

QGraphicsView mit GridLayout?

Verfasst: 18. August 2008 20:28
von LordBernhard
Hallo!

Ich bin dabei ein Bildverwaltungsprogramm zu schreiben, und habe dabei jedoch einige probleme bei der darstellung des picturebrowsers...

Leider habe ich bisher noch nie mit den Bestandteilen des Graphics Frameworks von Qt gearbeitet, daher schlagt mich bitte nicht, wenn ich das ganz komplett falsch angehe.

Das programmn soll das umsortieren der Bilder anhand eines Grids ermöglichen (die bilder sollen durchgehend an einem grid angeordnet sein)... wenn man umbenennt, soll es möglich sein, dass er selbstständig neu sortiert (anhand der namen), auch sortieren nach anderen dateiattributen soll möglich sein, im endeffekt soll man dann auch wenn man ein bild selektiert auf seine eigenschaften zugreifen können (exif, etc. (mittels eigenen libraries))
Außerdem soll man das bild auch noch per doppelklick/kontextmenü öffnen zu können (also ne komplette ansicht des bildes anschaun)

Alle ansätze, die ich nun gefunden habe sind folgende:

1.) Derzeit gehe ich von dem Diagram Scene Example aus, wobei ich einfach ein QGraphicsView habe, was die Scene darstellt, und wobei ich ein QGraphicsPolygonItem überlade, was ein quadrat zeichnet.

2.) Ich habe gerade die klassen QGraphicsLayout und QGraphicsGridLayout entdeckt.. für die benötigt man jedoch ein QGraphicsWidget ... wie könnte ich dann dabei auf Click/Move usw. reagieren? (das läuft im moment in meiner scene ab)

3.) wäre es vielleicht einfacher das ganze mit den neuen Alien Widgets zu machen? QLabel welches das bild anzeigt und noch ein QLineEdit darunter für den Dateinamen, das ganze in eine Klasse die von QGraphicsProxyWidget?? ableitet und dann die ganzen Objekte in ein QGraphicsGridLayout --> scene --> graphicswidget... kann man hier das ganze verschieben, click, etc. events einbauen.. wenn ja wo?

welche dieser 3 möglichkeiten wäre da am besten geeignet für die oben genannten usecases? bin grad ein bisschen am verzweifeln aufgrund der vielen möglichkeiten die es da gibt ^^

schon mal danke im vorraus für euere hilfe :-)

Bernhard

Verfasst: 19. August 2008 08:39
von CaptnChaos
Öhm.. widget proxy fände ich jetzt etwas mit kanonen auf spatzen geschossen. ich würde mir einfach eine neue Item-Klasse erstellen die sich selbst anhand eines Pfades managed und attribute, dateiname etc etc zur verfügung stellt. Dann machst du dir noch eine scene klasse und programmierst da eine grid funktion rein, die jedesmal aufgerufen wird wenn irgendwas an einem item verändert wurde. grid ist ja nicht wirklich schwer und sortieren auch nicht.

Als basis nimm ein nromals QGraphicsItem.