Seite 1 von 1

Text mehrerer Labels aus dem Code heraus ändern

Verfasst: 23. September 2007 13:29
von mk85
Hallo Leute,
ich habe auf meinem Dialog ca 20 TextLabels positioniert.
In einer Initialisierungsfunktion möchte ich dann den Text ändern.
Für eine einzelne Label gehts ja so:
textLabel1.setText("hallo");

Nun möchte ich das aber in einer kleine Schleife machen...
hat jemand ne Idee wie man das schön lösen kann?

Gibt es vielleicht die Möglichkeit aus den Labels ein Array zu machen?

Bin für jeden Tipp dankbar

Grüße
mk85

Re: Text mehrerer Labels aus dem Code heraus ändern

Verfasst: 23. September 2007 14:07
von mk85
(sorry ...versehentlich doppelpost)

Verfasst: 23. September 2007 14:23
von CaptnChaos
Pack sie in eine Liste:

Code: Alles auswählen

QList<QLabel*> labels;

Verfasst: 23. September 2007 18:48
von mk85
herzlichen dank, KernelPanic, habs hinbekommen.
guter tipp!

Verfasst: 24. September 2007 08:18
von macman
KernelPanic hat geschrieben:Pack sie in eine Liste:

Code: Alles auswählen

QList<QLabel*> labels;
Die Arbeit kann man sich sparen, das kann Qt schon alleine
http://doc.trolltech.com/4.3/qobject.html#findChildren

Verfasst: 24. September 2007 08:27
von CaptnChaos
aha! Gut zu wissen...
Die gibts aber noch nicht so lange, oder?
Bisher hab ich mir meine ChildWidgets immer durch diese Funktion herausgesucht:

Code: Alles auswählen

QList<QLabel*> list;
foreach(QObject *child, children())
{
if(child->metaObject->className() == "QLabel")
{
list << qobject_cast<QLabel*>(child);
list.last()->setText("text");
}
}

Verfasst: 24. September 2007 08:35
von macman
KernelPanic hat geschrieben:Die gibts aber noch nicht so lange, oder?
Keine Ahnung. Qt wird ja immer mächtiger, da bleibt es nicht aus das Funktionen hin zu kommen, die man früher von Hand gebastelt hat.