Seite 1 von 1

Object::Connect: No such slot...

Verfasst: 14. Dezember 2016 08:24
von ToxinSOund
Hallo,

ich habe mich bislang noch nicht viel mit QT beschäftigt und bin daher ein Neueinsteiger. (habt Erbamen :P )

Ich schreibe den code für einen RespberryPi und nutze dafür Netbeans (aber ich denke das liegt nicht das Problem?)
Zurzeit bin ich noch in der "Sandkastenphase" und probiere nur Schnipsel zum laufen zu bekommen, damit ich weiß wie ich später in meinem Projekt vorzugehen habe, also nicht wundern über die bislang Sinnlosen Funktionen...

Jetzt zu dem Problem:
wenn ich auf meinem PI die Anwendung starte, sagt mir das Terminal (Den Debuger meiner IDE habe ich zurzeit nicht zum laufen bekommen...):

Object::connect: No such slot OneStepper::Referenzlauf() in OneStepper.cpp.cc:21
Object::connect: (sender name: 'Ref')
Object::connect: (reciver name: 'OneStepper')
..........................(Das selbe für alle anderen connect aufrufe)...................................


Kann mir da jemand sagen, was ich falsch mache? Die Slots sind doch alle vorhanden, oder???

Mein Code:

OneStepper.h :

#ifndef _ONESTEPPER_H
#define _ONESTEPPER_H

#include "ui_OneStepper.h"

class OneStepper : public QMainWindow {
Q_OBJECT
public:
OneStepper();
virtual ~OneStepper();

private:
Ui::OneStepper widget;
void Referenzlauf ();
void fahreZu();
void fahreZu0();
void setzeGeschwindigkeit();

};

#endif /* _ONESTEPPER_H */


OneStepper.cpp.cc :

#include "OneStepper.h"

OneStepper::OneStepper() {
widget.setupUi(this);
widget.aktuellerWinkel-> setText("?");
widget.aktuellePosition-> setText("?");

connect(widget.Ref, SIGNAL(clicked()), this, SLOT(Referenzlauf()));
connect(widget.zuPos, SIGNAL(clicked()), this, SLOT(fahreZu()));
connect(widget.zu0, SIGNAL(clicked()), this, SLOT(fahreZu0()));
connect(widget.setGeschwindigkeit, SIGNAL(clicked()), this, SLOT(setzeGeschwindigkeit()));
}

OneStepper::~OneStepper() {
}

void OneStepper::Referenzlauf (){
widget.aktuellerWinkel-> setText("c");
widget.aktuellePosition-> setText("x");
}
void OneStepper::fahreZu(){

}
void OneStepper::fahreZu0(){

}
void OneStepper::setzeGeschwindigkeit(){

}

Re: Object::Connect: No such slot...

Verfasst: 14. Dezember 2016 11:54
von MichaelS
Die Fehlermeldungen sagen doch schon alles. Die Slots Referenzlauf, fahreZu, fahrerZu0 und setzeGeschwindigkeit gibt es in Deiner Klasse OneStepper nicht, da sie dort als normale Methoden deklariert sind. Damit Qt sie als Slot erkennt, müssen sie auch entsprechend deklariert werden:

Code: Alles auswählen

class OneStepper : public QMainWindow {
Q_OBJECT
public:
OneStepper();
virtual ~OneStepper();

private:
Ui::OneStepper widget;

private slots:

void Referenzlauf ();
void fahreZu();
void fahreZu0();
void setzeGeschwindigkeit();

Re: Object::Connect: No such slot...

Verfasst: 16. Dezember 2016 08:21
von ToxinSOund
So einfach...
Danke!

Wie gesagt, ich bin neu in QT.
(Auch wenn ich mich zugegebenermaßen einwenig schäme, dass ich da jetzt schon 2 Tage dran sitze :DDD )