QT4 Designer - gleiche Widgets in Array

Alles rund um die Programmierung mit Qt
Antworten
mase
Beiträge: 39
Registriert: 8. Mai 2007 00:17

QT4 Designer - gleiche Widgets in Array

Beitrag von mase »

Hallo!
Ich habe in einem, mit QT4 Designer erstellten Fenster 14 Statusbars
angeordnet. Diese tragen die Namen StatusBar0 - StatusBar13.
Um ihre Werte zu setzen wird ein Slot aufgerufen, der ein Signal
mit einem std::vector<unsigned> empfängt. In diesem Vector sind
die 14 Werte für die Statusbars.
Momentan find ich keine bessere Lösung, als 14mal die selben Zeilen
zu schreiben, wo eine StatusBar mit ihren korrespondierenden Element
aus dem Vector gesetzt wird.
Ich könnte auch einmalig einen std::vector<QStatusBar*> anlegen, und
diesen mit den 14 Statusbars füllen.
Noch besser wäre es aber, wenn es möglich wäre, wenn die Statusbars
bereits bei ihrer Erzeugung StatusBar[x] heissen würden. Würde ich
das Fenster von Hand programmieren, wäre dies wahrscheinlich kein
Problem, aber wie mach ich das im Designer?
VuuRWerK
Beiträge: 82
Registriert: 11. Juni 2007 20:46
Wohnort: Dresden

Beitrag von VuuRWerK »

Im Designer gar nicht, sowas macht man wenn schon im Code selber.

Gut Schuß
VuuRWerK ;)
Es gibt nur 3 natürliche Feinde des Programmierers: Tageslicht, frische Luft und das unerträgliche Gebrüll der Vögel.
Oft ist die Ursache des schwarzsehens lediglich ein verrutschen des Bretts vorm Kopf =)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Oder mit QObject::findChildren alle Widgets in eine Liste packen
VuuRWerK
Beiträge: 82
Registriert: 11. Juni 2007 20:46
Wohnort: Dresden

Beitrag von VuuRWerK »

Wo wir wieder im Code wären und nicht mehr im Designer ;)

Gut Schuß
VuuRWerK ;)
Es gibt nur 3 natürliche Feinde des Programmierers: Tageslicht, frische Luft und das unerträgliche Gebrüll der Vögel.
Oft ist die Ursache des schwarzsehens lediglich ein verrutschen des Bretts vorm Kopf =)
mase
Beiträge: 39
Registriert: 8. Mai 2007 00:17

Beitrag von mase »

Na dann lass ich besser die 14 Zeilen stehen.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Na dann lass ich besser die 14 Zeilen stehen.
und an wieviel stellen musst du den code aendern, wenn jemand statt 14 dann doch 15 statusbars haben will ?
Bist du eigentlich sicher dass du Statusbars und ned Progressbars meinst, ich versuch mir grad nen widget mit 14 statusbars vorzustellen ! ^^

Also ehrlich, mit 14 waer bei mir die kritsiche masse zum copy & paste scho ueberschritten ...

Ich wuerd die 14 bars mit nem platzhalter widget im deinem designten Formular ersetzen, und in eigenem code die 14 widgets per code hinzufuegen und auch per code in dem widget layouten ...

Aber ich bin auch faul, geb ich ja zu ^^

einzig bissi trickige sache ist, wenn man die signale und slots zentral uber das uebergeordnete fenster laufen lassen muss, so das man nen handle eigentlich zu braucht ....

Ciao ...
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Vorausgesetzt du hast 14 QLabels in deiner QStatusBar, wäre da nicht sowas wie

Code: Alles auswählen

   QObjectList list = statusBar->children();

   for (int i = 0; i < list.count(); i++)
   {
      QLabel* label = qobject_cast<QLabel*>(list.at(i));

      if (label)
         label->setText(vector.at(i));
   }
denkbar?
Antworten