Objektinspektor

Alles rund um die Programmierung mit Qt
Antworten
uwe_road
Beiträge: 11
Registriert: 2. März 2011 12:20

Objektinspektor

Beitrag von uwe_road »

hallo zusammen,

ich arbeite momentan an einer art objekt inspektor und habe ein paar designprobleme.
der aufbau ist folgendermaßen:
ich besitze ein treewidget, in dem objekte dargestellt werden, also id, parameter solche dinge.Angenommen diese drei Objekte heißen A,B und C. Klickt man jetzt auf eins der items, dann soll sich auf einem dockwidget eine form öffnen, die dem benutzer dann ermöglicht eingaben zu machen.
Da sich A,B,C in der anzahl der attribute unterscheiden, ändert sich auch die sich öffnende form. nun bin ich her gegangen und habe die form in jeder klasse spezifiziert, es gibt also ein funktion getLayout(), die die darstellung liefert.
soweit funktioniert das ganze. nur ich finde es unschön, dass für jede instanz eine form kreiert wird, da es eigentlich reichen würde, für jeden objekttypen, sprich 3 verschiedene formen zu erstellen.

nun befürchte ich aber, wenn ich diese form statisch mache, dass ich probleme kriegen werde, wenn ich versuche über das signal slot system der instanz mitzuteilen, dass in der form eine änderung vorgenommen wurde. hat da jemand erfahrung mit, oder einen vll ganz anderen ansatz?

vielen dank
helmut.jakoby
Beiträge: 19
Registriert: 17. Januar 2012 15:26
Kontaktdaten:

Re: Objektinspektor

Beitrag von helmut.jakoby »

Wo ist Dein Problem? Du hast für jeden Typ im TreeWidget ein typspezifisches BearbeitungsWidget gebaut (sehe ich das richtig?). Wenn Du ein Objekt aus dem TreeWidget bearbeiten willst, instanziierst (ctor) Du das typspezifische BearbeitungsWidget und füllst es ggf. mit den Daten des ausgewählten Objekts aus dem TreeWidget. Die Einträge können bearbeitet werden. Die geänderten Einträge werden aus dem BearbeitungsWidget in das Objekt aus dem TreeWidget übertragen (ggf. nach jeder Änderung eines Datums). Wenn ein anderes Objekt im TreeWidget zur Bearbeitung ausgewählt wird, wird das ursprüngliche typspezifische BearbeitungsWidget aus dem Speicher entfernt (dtor) und ein neues typspezifisches BearbeitungsWidget für das ausgewählte Objekt aus dem TreeWidget instanziiert. Das wäre, wenn ich alles verstanden habe, mein Vorgehen.
Gruß
Helmut
Antworten