Text mehrerer Labels aus dem Code heraus ändern

Alles rund um die Programmierung mit Qt
Antworten
mk85
Beiträge: 9
Registriert: 20. September 2007 18:23

Text mehrerer Labels aus dem Code heraus ändern

Beitrag 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
mk85
Beiträge: 9
Registriert: 20. September 2007 18:23

Re: Text mehrerer Labels aus dem Code heraus ändern

Beitrag von mk85 »

(sorry ...versehentlich doppelpost)
Zuletzt geändert von mk85 am 23. September 2007 18:35, insgesamt 1-mal geändert.
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

Pack sie in eine Liste:

Code: Alles auswählen

QList<QLabel*> labels;
mk85
Beiträge: 9
Registriert: 20. September 2007 18:23

Beitrag von mk85 »

herzlichen dank, KernelPanic, habs hinbekommen.
guter tipp!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag 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");
}
}
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Antworten