PDA

View Full Version : Problem connection Signal and slot



tamnv110
22nd June 2011, 11:34
I have a class KiemTraKetNoi


class KiemTraKetNoi : public QObject
{

public:
KiemTraKetNoi();
QString KTTruyenDuLieu(QString &str);
bool myCheckConnect();
void TestTime();
public slots:
void kiemTraTimeOut();
private:
QTimer *timer;
QNetworkAccessManager manager;
QNetworkReply *reply;
};


in KiemTraKetNoi:


QString KiemTraKetNoi::KTTruyenDuLieu(QString &str)
{
//QNetworkAccessManager manager;
reply=manager.get(QNetworkRequest(QUrl(str)));
QEventLoop evLoop;
QObject::connect(reply,SIGNAL(readyRead()),&evLoop,SLOT(quit()));
QObject::connect(reply,SIGNAL(error(QNetworkReply: :NetworkError)),&evLoop,SLOT(quit()));

QObject::connect(timer,SIGNAL(timeout()),this,SLOT (kiemTraTimeOut()));

if(!timer->isActive())
timer->start();

evLoop.exec();
....
}


and timer = new QTimer(this);


void KiemTraKetNoi::kiemTraTimeOut()
{
timer->stop();
reply->abort();
}


When my app running in main.cpp , it show message:
Object::connect: No such slot QObject::kiemTraTimeOut() in ..\TuDienVanHoa\kiemtraketnoi.cpp:23

I don't understand it. Help me!

cincirin
22nd June 2011, 12:07
You should write Q_OBJECT macro in "KiemTraKetNoi" class.

tamnv110
23rd June 2011, 12:36
Thank cincirin!
I resolved my error.