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?
QT4 Designer - gleiche Widgets in Array
und an wieviel stellen musst du den code aendern, wenn jemand statt 14 dann doch 15 statusbars haben will ?Na dann lass ich besser die 14 Zeilen stehen.
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 ...
Vorausgesetzt du hast 14 QLabels in deiner QStatusBar, wäre da nicht sowas wie
denkbar?
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));
}