Seite 1 von 1

Anfänger:QtableWidget Slots

Verfasst: 27. April 2007 14:40
von adonis
Hallo zusammen,
Ich möchte durch einen Button Click eine Zeile zu einem QtableWidget hinzufügen,das klappt aber nicht.

Code: Alles auswählen

      class CoordinateTable:public QTableWidget
{
       Q_OBJECT
public:
        CoordinateTable(QWidget *parent=0);

private slots :
  void  CoordinateTable::addrow();

};

     
CoordinateTable::CoordinateTable(QWidget *parent)
    : QTableWidget(parent)
{   setColumnCount(2);
    setRowCount(2);
    };
  void  CoordinateTable::addrow()
   { 
     int row = CoordinateTable::rowCount();
    CoordinateTable:: insertRow(row);
//CoordinateTable::repaint();
        };
Im main steht:

Code: Alles auswählen

....
CoordinateTable  *tableWidget = new  CoordinateTable;
 QObject::connect(okbutton, SIGNAL(clicked()),
                            tableWidget ,SLOT(addrow()));   
    

beim clicken passiert aber nichts.
Wo ist denn das Fehler:?:
VG.

Verfasst: 27. April 2007 15:27
von Christian81
Die Definition ist falsch:

Code: Alles auswählen

  void  CoordinateTable::addrow();

Verfasst: 27. April 2007 15:47
von adonis
Christian81 hat geschrieben:Die Definition ist falsch:

Code: Alles auswählen

  void  CoordinateTable::addrow();
Erstmal danke für die Antwort.ich habe auch so versucht:

Code: Alles auswählen

 void  addrow();
klappt aber auch nicht.

Verfasst: 27. April 2007 15:49
von Christian81
Ok, dann weiter - laut Doku gibt es kein signal clicked() (ich gehe davon aus dass es ein QPushButton in Qt4 ist).

Verfasst: 27. April 2007 15:59
von adonis
Es ist ein Qt 4 QPushButton.

Code: Alles auswählen

    QPushButton *okbutton=new QPushButton("Ok");
    QPushButton *quitbutton=new QPushButton("&Abbrechen");  
Beim quitbutton klappt es:

Code: Alles auswählen

  QObject::connect(quitbutton, SIGNAL(clicked()),
                       &app, SLOT(quit()));

Verfasst: 27. April 2007 16:16
von Christian81
adonis hat geschrieben:Es ist ein Qt 4 QPushButton.
und warum schaust Du dann nicht mal in die Doku ?
Beim quitbutton klappt es:

Code: Alles auswählen

  QObject::connect(quitbutton, SIGNAL(clicked()),
                       &app, SLOT(quit()));
Nein, das funktioniert auch nicht (ggf. nur wegen dem feature 'auto connect'. Lies endlich die Doku!

Wenn Du die Konsole beobachtest (siehe qmake Doku, CONFIG und 'console') wird es Dir zur Laufzeit auch angezeigt dass es nicht funktioniert.

Verfasst: 27. April 2007 16:25
von adonis
danke nochmal für deine hilfe.
Christian81 hat geschrieben: und warum schaust Du dann nicht mal in die Doku ?
Im Doku steht
"A push button emits the signal clicked() when it is activated by the mouse, the Spacebar or by a keyboard shortcut. Connect to this signal to perform the button's action. Push buttons also provide less commonly used signals, for example, pressed() and released()."
und auch"Inherits QAbstractButton."wo das clicked() Signal definiert ist.

Verfasst: 27. April 2007 16:29
von Christian81
Aber auf den Link kann man wohl trotzdem nicht klicken um zu schauen wie das signal aussieht?
http://doc.trolltech.com/4.2/qabstractb ... ml#clicked