Seite 1 von 1

QLineEdit auf Signale reagieren

Verfasst: 4. Oktober 2006 12:26
von hoody
Hallo Hallo,

bin ein ziemlich neuer QT Benutzer, brauch es allerdings für eine Projektarbeit. Vielleicht könnt ihr mir ja weiter helfen...

Also nun erstmal zu meinem Problem, ich will bestimmte Strings in QLineEdit Felder einblenden. Wenn ich das QLineEdit Objekt anlege, klappt auch alles wunderbar mit setText(), wenn ich dann allerdings einen neuen Text setzen möchte passiert leider garnix mehr. Habe den Teil mal aus meinem Projekt genommen und in ein extra "programm" gepackt... es soll hier lediglich auf das SIGNAL clicked des Buttons ein Text "Test" in QLineEdit eingeblendet werden....

Danke schonmal für Eure Hilfe!

PS.: hab auch schonmal im Forum geschaut, allerdings keine passenden Threats zu meinem Problem gefunden...

Code: Alles auswählen

MyWidget.h
===============================
      1 #ifndef MYWIDGET_H_
      2 #define MYWIDGET_H_
      3 
      4 #include <QPushButton>
      5 #include <QWidget>
      6 #include <QLineEdit>
      7 
      8 class MyWidget : public QWidget
      9 {       public:
     10         MyWidget(QWidget *parent = 0);
     11         
     12         public slots:
     13         void SETtoEMPTY();
     14     
     15         private:
     16         QPushButton *B;
     17         QLineEdit *L;
     18 };
     19 
     20 #endif /*MYWIDGET_H_*/
===============================

Code: Alles auswählen

MyWidget.cpp
===============================
      1 
      2 #include "MyWidget.h"
      3 
      4 using namespace std;
      5 
      6 MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
      7 {       this->setFixedSize(800,600); 
      8        
      9         B = new QPushButton(tr("Button"),this);
     10         B->setGeometry(10,10,150,30);
     11         B->setFont(QFont("Arial", 10, QFont::Bold));
     12 
     13         L = new QLineEdit(this);
     14		L->setGeometry(150,10,150,30);
     15         L->setReadOnly(0);
     16 
     17         connect(B, SIGNAL(clicked()) , this , SLOT(SETtoEMPTY()) );
     18 }
     19 
     20 void MyWidget::SETtoEMPTY()
     21 {       L->setText(tr("TEST"));
     22 }
     23 
================================

Code: Alles auswählen

main.cpp
================================
      1 #include <QApplication>
      2 
      3 #include "MyWidget.h"
      4 
      5 using namespace std;
      6 
      7 int main(int argc, char* argv[])
      8 {       QApplication app(argc, argv);
      9         MyWidget widget;
     10         widget.show();
     11         return app.exec();
     12 
     13 }
     14 
================================

Verfasst: 4. Oktober 2006 16:07
von macman
Irgendwie fehlt da ein Q_OBJECT.

Verfasst: 4. Oktober 2006 16:26
von caligano
macman hat geschrieben:Irgendwie fehlt da ein Q_OBJECT.
in der Tat:

MyWidget.h

Code: Alles auswählen

#ifndef MYWIDGET_H_                    
#define MYWIDGET_H_                    
                                       
#include <QPushButton>                 
#include <QWidget>                     
#include <QLineEdit>                   
                                       
class MyWidget : public QWidget        
{       
   
   Q_OBJECT
   
public:                        
   MyWidget(QWidget *parent = 0); 
                                       
public slots:                  
   void SETtoEMPTY();             
                                       
private:                       
   QPushButton *B;                
   QLineEdit *L;                  
};                                     
                                       
#endif /*MYWIDGET_H_*/                 
Jetzt noch einmal qmake laufen lassen und dann funktioniert das auch!

Verfasst: 4. Oktober 2006 18:09
von hoody
Sehr gut, ich danke Euch!!! Jetz läuft das ganze Ding wirklich ... :)

Gruß HoodY