Zu meinem "Problem":
Ich habe ein CustomWidget ("my_widget") erzeugt, dass ich manuell/dynamisch mit
Code: Alles auswählen
my_widget = new my_widget();Code: Alles auswählen
ui->vertLayout->addWidget(my_widget);Hier taucht auch gleich meine 1. Frage auf:
Ich weiß, dass ich 30 my_widget() im Layout habe. Wie iteriere ich über diese bzw. wie kann ich sie auslesen? Im Moment speichere ich die Adressen aller my_widgets() zwischen und verwalte diese über einen std::vector<unsigned int>. Da gibt es doch garantiert eine elegantere Möglichkeit?
Zu einem späteren Zeitpunkt in der Applikation wird das relativ große Layout einem neuen QWidget namen "Mgr" übergeben und dieses Widget in eine QScrollArea gehängt, damit der User über alle my_widget() scrollen kann..
Code: Alles auswählen
Mgr->setLayout(ui->vertLayout);Code: Alles auswählen
ui->my_ScrollArea->setWidget(Mgr);Und damit kommen wir zur 2. Frage:
Ich möchte ganz gerne, dass das Fenster, das die ScrollArea verwaltet, auf die Signale dieser Buttons reagiert. Wenn z.B. ein Knopf gedrückt wird, soll z.B. die Hintergrundfarbe des Fensters geändert werden.
Wie verbinde ich das clicked()-Signal mit dem (Main-)Fenster (zur Laufzeit des Programmes?) Geschieht dies auch über die connect()-Anweisung?
Kurz noch die Struktur:
Code: Alles auswählen
QDialog
|
|--- QScrollArea
|
|--- ScrollAreaWidgetContent
|
|--- QVBoxLayout
|
|--- QWidget ("Mgr")*
|
|--- QWidget("my_widget")*
|--- QWidget("my_widget")*
|--- QWidget("my_widget")*
...
* = zur Laufzeit erstellt (alles andere via Designer)
Vielen Dank im Voraus für eure Hilfe.