Anfängerfragen: dyn. erstellen beliebig vieler Elemente

Alles rund um die Programmierung mit Qt
Antworten
mikro
Beiträge: 60
Registriert: 19. April 2006 09:23
Wohnort: Erlangen
Kontaktdaten:

Anfängerfragen: dyn. erstellen beliebig vieler Elemente

Beitrag von mikro »

Hallo,
ich muss mir in einer Windowklasse beliebig viele instanzen einer klasse merken, teils muss ich auch dynamisch Element wie QPushButtons, layouts o.ä. erzeugen.
zuerst einmal:
die ganzen Q-Elemente werden ja immer auf dem Heap erzeugt, haben immer ein parent, dass bis hoch zur Applikation verfolgt werden kann und damit ist immer sicher gestellt, dass beim schliessen der applikation alle Elemente jeweils von ihrem Parent den Befehl zur Selbstzerstörung erhalten. Richtig? Somit muss ich mich nicht darum kümmern die zu zerstören? Und im Gegensatz zu Objekten auf dem Stack bleiben diese Objekte auch erhalten wenn der Scope verlassen wird, somit bleiben die auch, wenn die Funktion die sie erstellt verlassen wird? Oder bleiben die, weil sie ihrem Parent hinzugefügt wurden?
Jetzt reicht es mir ja nicht, die zu erstellen, ich will die ja auch noch mit Signalen versehen, dazu muss ich die ansprechen können. In php würde ich da vielleicht gleich beim generieren vernünftige Variablennamen erzeugen:

Code: Alles auswählen

in php:
$varname = 'foo';
$$varname = 'hello world';
echo $foo; // gibt 'hello world' aus
über die Möglichkeit sowas zu machen bin ich bei c++ noch nicht gestolpert. Geht das?
Also wäre meine erste Reaktion einfach alle Elemente in einem Array zu speichern. Das scheitert in c++ aber daran, dass ich nicht weiss, wieviele das mal sein werden. ich hab mal nachgeschaut, wie das im calculator-Beispiel von Qt gemacht wird, da werden ja auch einige Buttons erzeugt:

Code: Alles auswählen

aus calculator.h:
    enum { NumDigitButtons = 10 };
    Button *digitButtons[NumDigitButtons];
Na prima, sie legen also von vornherein fest, dass es nur 10 Buttons geben darf. Da muss es doch hoffentlich auch irgendeine möglichkeit geben sowas zu konstruieren, ohne vorher zu wissen, wieviele Objekte man brauchen wird??
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du suchst statt dem klassichem C++-Array (eigentlich C) QList. Wobei du dir bei der Gelegenheit auch gleich die anderen Container-Klassen anschauen solltest...
mikro
Beiträge: 60
Registriert: 19. April 2006 09:23
Wohnort: Erlangen
Kontaktdaten:

Beitrag von mikro »

naja, los gings ja mit QMap - fieserweise gibt QMap::value ein const-Objekt zurück. Oder mach ich da noch was anderes falsch: http://www.qtforum.de/forum/viewtopic.php?t=2286
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mikro
Beiträge: 60
Registriert: 19. April 2006 09:23
Wohnort: Erlangen
Kontaktdaten:

Beitrag von mikro »

arrghs - so einfach kanns sein. sorry, das hatte ich übersehen. Danke
Antworten