Seite 1 von 1
[SOLVED] Qbjektname aus Variable
Verfasst: 24. März 2009 11:46
von t0bias
Hallo zusammen,
wie kann ich einem dynamisch generierten Objekt einen Namen aus
einer Variable zuteilen?
Also wenn ich z.B. Label während der Laufzeit erstelle, das erste
"Label_1" nennen, das zweite "Label_2", usw.?
Danke und Gruss
Tobi
Verfasst: 24. März 2009 11:55
von CLRS530
Welchen Sinn soll das denn haben? Der Name ist doch nur entscheidend um über ui auf das Widget zugriff zu haben. Wenn du es dynamisch generierst, speicherst du es als Member.
Verfasst: 24. März 2009 12:01
von t0bias
Hm.. aber wie kann ich dann darauf zugreifen?
Verstehe ich noch nicht ganz, sorry?
Verfasst: 24. März 2009 12:14
von CLRS530
Es hat mich jemand darauf hingewiesen, dass es Mist ist/sein soll, was ich schreibe, also macht man das wohl doch so oder so ähnlich wie du dir das vorstellst

.
EDIT:
Wird dir nachher noch jemand anders schreiben, der es auf andere Art macht.
Ich habe bisher nie große Anzahlen an Widgets Dynamisch erstellen müssen, jedoch eine kleinere Anzahl Views und ComboBoxes. Du erstellst die völlig normal
Code: Alles auswählen
QLabel *label = new QLabel(parentDialog);
label->setText("Label1");
und kannst sie dann hinzufügen. Solltest du irgendwelche Werte ändern müssen, kannst du das Label in der Klasse definieren und hast somit immer Zugriff. Hast du eine dynamische Anzahl, dann z.B. als Vector.
Ich weiß nicht, ob das wirklich so dumm ist.
Verfasst: 24. März 2009 12:26
von Christian81
In C++ kann man keine Variablennamen zur Laufzeit erzeugen.
Also alles z.B. in einer QList<label*> speichern und später dann per Index drauf zugreifen.
Verfasst: 24. März 2009 12:31
von Strahlex
Vielleicht mit QObject::setObjectName ( const QString & name )?
Als String einfach tr("Label_%1").arg(i) übergeben. 8)
Aber besser ist es wohl eine QList<QLabel*> zu erstellen, dann kannst du die Labels (oder auch andere Objekte) besser verwalten bzw. du sparst das aufrufen per Name.
Verfasst: 24. März 2009 12:58
von CLRS530
Jup, ich denke mal, dass er so etwas meinte, aber für mich wäre es wesentlich übersichtlicher mit einem Vektor zu arbeiten, mal von dem Geschwindigkeitsvorteil abgesehen, der dort wahrscheinlich eh eine untergeordnete Rolle spielt.
Darüber hinaus bekommt man mit diesen Objekten z.B. auch keine Anzahl an Widgets zurück, die bei Vector mit count sofort herauszubekommen ist. Aber jedem wie er es vorzieht.
Verfasst: 24. März 2009 13:01
von t0bias
danke, super! genau das meinte ich!
Gruss
Tobi