Qt: Bei klick auf QPushButton Text in QLineEdit ändern?
-
Dürfte ein recht einfach Problem für QT-kundige sein: Ich will wenn auf einen Button gedrückt wird den Text eines Textfelds ändern:
class Foobar : public QObject { Q_OBJECT private: QWidget window; QLineEdit *textBox; public slots: void onPushButtonClick() { textBox->setText("Das ist ein Test"); } public: Foobar() { window.setWindowIconText("sf"); QVBoxLayout* mainLayout = new QVBoxLayout(&window); QPushButton* pushButton = new QPushButton("Drück mich!"); textBox = new QLineEdit("TextBox" ); mainLayout->addWidget(pushButton); mainLayout->addWidget(textBox); QObject::connect(pushButton, SIGNAL(clicked()), this, SIGNAL(onPushButtonClick)); window.show(); } };
funktioniert so leider nicht - was mache ich falsch?
-
QObject::connect(pushButton, SIGNAL(clicked()), this, SLOT(onPushButtonClick()));
übrigens dürfte es eine Fehlermeldung beim Start gegeben haben
-
Danke - das wars - dachte er schmeißt mir da eine Fehlermeldung an den Kopf wenn da unsinn reingegeben wird... mmmhhh...
-
Vertexwahn schrieb:
Danke - das wars - dachte er schmeißt mir da eine Fehlermeldung an den Kopf wenn da unsinn reingegeben wird... mmmhhh...
die gab es... dürften in etwa so gelautet haben (in der Konsole)
Object::connect: Parentheses expected, signal Foobar::onPushButtonClick Object::connect: (sender name: 'pushbutton') Object::connect: (receiver name: 'Foobar')
wenn du die Klammern nur hier vergessen hast, im eigentlichen Code aber nicht:
Object::connect: No such signal Foobar::onPushButtonClick() Object::connect: (sender name: 'pushbutton') Object::connect: (receiver name: 'Foobar')
die kommt aber wie gesagt erst beim Start des Programms
-
Hinweis: Die Fehlermeldungen kommen zur Laufzeit nicht beim kompilieren.