formGroupBoxb = new QGroupBox(tr("BlaBlaBla"));
QFormLayout *layout = new QFormLayout;
for (int a = 0; a < i; ++a) {
labels = new QLabel(tr("Line %1:").arg(a + 1));
//lineEdits = new QLineEdit;
layout->addWidget(labels);
//layout->addWidget(lineEdits);
}
formGroupBoxb->setLayout(layout);
Funktioniert aber leider nicht so, hat wer eine idee ?
*) "Funktioniert so nicht" ist keine Fehlerbeschreibung. Sag mal genauer was nicht geht!
*) Hast du da ein saftiges Memory-Leak, da deine formGroupBoxb mit jedem Spinbox-Ändern neu erstellt, die alte Instanz aber nicht gelöscht wird.
*) Wie fügst du die GroupBox in dein bestehendes Fenster ein?
MacGyver hat geschrieben:Es kommt keine Fehlermeldung.
Ich will keine FehlerMELDUNG sondern eine FehlerBESCHREIBUNG.
Z.B. "Ich ändere die SpinBox, aber es wird mein neues formGroubBoxB nicht angezeigt".
Dann sage ich "Du fügst es in createFormGroupBoxb auch nicht ins mainlayout ein".
Usw.
BTW hättest du meine Katalog aus dem ersten Post nicht nach der Beantwortung des ersten Punktes abbrechen sollen
Hallo
ok da hst du recht.
1. Es werden die LineEdits nicht neu erstellt, nur die die schon
per spinbox->setValue(5); vorgegeben sind.
2. Das stimmt, stört mich aber momentan nicht da ich nur etwas probieren will.
3. Über die Funktion createFormGroupBoxa(); dachte ich?!??
Das formGroupBoxb, das du in der Funktion jedesmal neu generierst, ist ein anderes als das welches du im Konstruktor in das mainlaout legst!
Du musst am Ende von createFormGroupBoxb() das neu erstellte formGroupBoxb wieder ins mainlayout legen - nachdem du das alte Element herausgenommen und gelöscht hast!
int index = mainlayout->indexOf(formGroupBoxb);
mainlayout->removeWidget(formGroupBoxb);
delete formGroupBoxb;
// formGroupBox neu erstellen
// lineEdits hinzufügen
// usw.
mainlayout->insertWidget( index, formGroupBoxb);
Du kannst natürlich das Löschen bleiben lassen und direkt die widgets ins bereits exisierende layout von formGroupBoxb einfügen / löschen.
Das überlass ich aber dir, mit dem Gezeigten sollte der Weg klar sein.