QT - auf ein in anderer Funktion geschaffenes Widget zu greifen
-
Abend,
ich möchte in meinem Programm einen Button, welcher weiter Widgets zu meinem Aktuellen Fenster hinzufügt.
Dies ist mir auch mit diesem Code gelungen:void Widget::on_pushButton_clicked() { QLineEdit *lineEdit = new QLineEdit(); ui->horizontalLayout->addWidget(lineEdit); }
zur Vervollständigung möchte ich noch erwähnen, dass ich bereits mittels des qt creators ein simples Fenster erstellt habe welchen 2 Buttons uns ein Horizontales Layout beinhaltet. Der code den ihr oben seht wird beim betätigen des ersten Buttons ausgeführt, und funktioniert auch tadellos...
Nun zu meinem Problem:
Ich möchte nun beim betätigen des 2ten buttons das oben hinzugefügte QLineEdit auslesen... ich kann allerdings nur in der "on_pushButton_clicked" Funktion darauf "zugreifen" , nicht in der "on_pushButton_2_clicked".
Wie, kann in der "on_pushButton_2_clicked" Funktion, auf das QLineEdit zugreifen? (es wird zuvor noch sichergestellt das QLineEdit was ausgelesen werden soll auch bereits Kreiert wurde)
-
Es ist nicht ratsam, mit GUI und Qt anzufangen, wenn man noch keine Basics beherrscht. Und du kannst offensichtlich kein C++, sonst würde sich diese Frage überhaupt nicht stellen.
Du hast Klassen, in deinem Beispiel heißt sie wohl Widget, und Klasse können Member haben. Wenn du das QLineEdit später benutzen willst, dann legst du eben keine lokale Variable an, sondern speicherst das in einer Membervariable. Oder in einer Liste, oder je nachdem, was du eigentlich brauchst.
Eine andere Möglichkeit wäre, dem Objekt einen Namen zu geben (setObjectName) und dann über findChild danach zu suchen.Aber nochmal, grad C++ ist eine Sprache, bei der es sehr wichtig ist, die Grundlagen wirklich zu verstehen. Und die sollte man intensiv lernen und sich nicht durch umfangreiche Frameworks wie Qt ablenken lassen, sonst fällt man ständig auf die Nase und es macht sehr schnell keinen Spass mehr.
-
Danke für die Kritischen Worte, denn diese sind die Hilf reichsten.
Ich werde mich also wohl oder übel vorerst darauf beschränken müssen die Grundlagen zu erlernen, und danach auf Qt zurückkommen.