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
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];