C++ Deklarieren eines QLineEdit Objekts / Qt

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.412
Hallo Leute,

ich habe mich einfach mal rangewagt, an GUI Programmierung in C++ bzw. Qt Framework.
Leider scheiter ich schon beim simpelsten Programm.
Ich wollte einen minimalistischen Taschenrechner bauen laut diesem Tutorial.

Nachdem ich die Elemente im Qt Creator angeordnet habe, wollte ich, wie im Tutorial beschrieben, den Inputfeldern A und B Startwerte geben. Soweit so gut. Im Tutorial steht ein inputA -> setText("0"); reicht. Das funktioniert allerdings überhaupt nicht. Die IDE gibt mir wie erwartet zurück, das inputA nicht definiet sei. Werden die Objekt Deklarationen nicht automatisch, wenn ich im Designer bin geschrieben im Qt Creator ?

Ein
Code:
QLineEdit inputA;
oder
Code:
QLineEdit inputA = new QLineEdit;
hilft nicht. Versteh ich da irgendwas falsch ?
 
Versuch mal

QLineEdit * inputA = new QLineEdit;

oder du versuchst

inputA.setTest("0");


Alle Angaben natürlich ohne Gewähr, da ich's gerade nicht nachvollziehen kann.
 
wenn du ein QLineEdit mit dem objektnamen "inputA" im Qt Creator angelegt hast, kannst du im Code über ui->inputA->setText("") darauf zugreifen. Dies aber erst dann, nachdem im konstruktor deines Fensters "ui->setupUi( this );" aufgerufen wurde.
 
Damit gehts, allerdings wird der Text nicht gesetzt, was ja mittels "setText();" funktionieren sollte.

Jo danke hast natürlich Recht @[GP] mino und hätte ich eigentlich wissen müssen ^^
und damit gehts auch, denn ich glaub wenn ich
Code:
QLineEdit *  inputA = new QLineEdit;
benutze erstell ich ja ein neues Objekt und greife nicht auf das vorhandene Objekt zu.
 
Zuletzt bearbeitet:
beziehst dich wahrscheinlich auf die antwort von Fellor. wenn du die widgets selbst erzeugst, musst du diese erst in das parentfenster hinzufügen, damit sie sichtbar werden.

zb:
Code:
QLineEdit * inputA = new QLineEdit( this );
layout()->addWidget( inputA );

davon rate ich aber als anfänger ab.
 
Wenn du

Code:
    QLineEdit inputA;

im Konstruktor deines Parent-Objekts anlegst, müsste es doch funktionieren, oder nicht?
 
türlich nicht :) zum einen fliegt das objekt "inputA" pronto aus dem stack, wenn der scope des konstuktors beendet ist. zum anderen weiß das parent nichts von dem erzeugten widget. drum auch das beispiel aus meinem vorherigen post, wie es alternativ geht.
 
Ich glaube, ich meinte auch eigentlich als Member - Variable anlegen :)

Oh Mann, es ist Freitag und ich brauch mehr Kaffee .... :rolleyes:
 
Zurück
Oben