I have a class KiemTraKetNoi
class KiemTraKetNoi
: public QObject{
public:
KiemTraKetNoi();
bool myCheckConnect();
void TestTime();
public slots:
void kiemTraTimeOut();
private:
QNetworkAccessManager manager;
QNetworkReply *reply;
};
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;
};
To copy to clipboard, switch view to plain text mode
in KiemTraKetNoi:
{
//QNetworkAccessManager manager;
reply
=manager.
get(QNetworkRequest
(QUrl(str
)));
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();
....
}
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();
....
}
To copy to clipboard, switch view to plain text mode
and timer = new QTimer(this);
void KiemTraKetNoi::kiemTraTimeOut()
{
timer->stop();
reply->abort();
}
void KiemTraKetNoi::kiemTraTimeOut()
{
timer->stop();
reply->abort();
}
To copy to clipboard, switch view to plain text mode
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!
Bookmarks