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.


Log in to reply