Это сводит меня с ума ... он работал раньше, но не работает. Я определил Q_SLOTS и Q_SIGNALS, и я пытался их подключить. Он работал до некоторой степени ... и вдруг все перестало работать, и теперь я получаю ошибки. Мой код выглядит следующим образом:Сигналы QT и слоты неожиданны Ошибка
ControllerLogic.h
#ifndef CONTROLLERLOGIC_H
#define CONTROLLERLOGIC_H
#include "initdataaccess.h"
#include "mainframe.h"
#include <QtGui>
#include "initializationdatastructure.h"
/** This is a controller class; refering to the model-view-controller
* architecture.
*/
class ControllerLogic : public QObject
{
Q_OBJECT
public:
ControllerLogic(InitDataAccess *initDataAccess, MainFrame *mainFrame);
Q_SIGNALS:
void Signal();
private:
void setMainFrame(MainFrame mainFrame);
public Q_SLOTS:
void receive();
};
#endif // CONTROLLERLOGIC_H
ControllerLogic.cpp
#include "controllerlogic.h"
#include "licensedataaccess.h"
#include <qobjectdefs.h>
// obsolete...may be used later
ControllerLogic::ControllerLogic(InitDataAccess *initDataAccess, MainFrame *mainFrame)
{
connect(this, SIGNAL(signal()), mainFrame, SLOT(PrintTestSlot()));
}
void ControllerLogic::receive(){
qDebug()<<"RECEIVE";
}
void ControllerLogic::Signal(){
qDebug()<<"SIGNAL";
}
ОШИБКА
moc_controllerlogic.obj:-1: error: LNK2005: "protected: void __thiscall ControllerLogic::Signal(void)" ([email protected]@@IAEXXZ) already defined in controllerlogic.obj
release\TSLSuite.exe:-1: error: LNK1169: one or more multiply defined symbols found
Я также попытался определить сигнал следующим образом:
public:
Q_SIGNAL void Signal();
, но я получаю ту же ошибку.
Что происходит? Пожалуйста, помогите!
Спасибо!
нормально, ну как я могу определить, что я хочу сделать в сигнале, если кварты генерирует функции для меня? – PTBG
Сигнал - это только сигнал, и ничего больше. Если вы хотите отреагировать на этот сигнал, вы подключитесь к нему с помощью соединения сигнал/слот и выполните свой собственный код в своем слоте. – Chris
ohh я вижу сейчас, большое спасибо. У меня было неправильное понимание механизма сигнала/слота. – PTBG