Qt QNetworkAccessManager不发出信号
调用函数CheckSite()时使用的url类似于,它初始化QNetworkAccessManager对象并连接()插槽和信号 manger->get()调用似乎可以工作(它会生成http流量),但不会在请求端调用slot replyFinished() 这个代码怎么了Qt QNetworkAccessManager不发出信号,qt,qt4,signals,slot,Qt,Qt4,Signals,Slot,调用函数CheckSite()时使用的url类似于,它初始化QNetworkAccessManager对象并连接()插槽和信号 manger->get()调用似乎可以工作(它会生成http流量),但不会在请求端调用slot replyFinished() 这个代码怎么了 #include <QtCore> #include <QtNetwork> class ClientHandler : public QObject { Q_OBJECT QNetworkAcce
#include <QtCore>
#include <QtNetwork>
class ClientHandler : public QObject
{
Q_OBJECT
QNetworkAccessManager *manager;
private slots:
void replyFinished(QNetworkReply *);
public:
void CheckSite(QString url);
};
void ClientHandler::replyFinished(QNetworkReply *reply) { qDebug() << "DONE"; }
void ClientHandler::CheckSite(QString url) {
QUrl qrl(url);
manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(qrl));
}
#包括
#包括
类ClientHandler:公共QObject
{
Q_对象
QNetworkAccessManager*管理器;
专用插槽:
无效回复完成(QNetworkReply*);
公众:
无效检查站点(QString url);
};
void ClientHandler::replyFinished(QNetworkReply*reply){qDebug()get(QNetworkRequest(qrl));
}
什么都没有。我对它进行了包装,使其功能齐全,效果良好:
// placed in client.cpp
#include <QtDebug>
#include <QCoreApplication>
/* YOUR CODE */
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
ClientHandler handler;
handler.CheckSite("www.google.com");
return app.exec();
}
#include "client.moc"
//放在client.cpp中
#包括
#包括
/*你的代码*/
int main(int argc,char*argv[])
{
QCore应用程序应用程序(argc、argv);
ClientHandler-handler;
handler.CheckSite(“www.google.com”);
返回app.exec();
}
#包括“client.moc”
它按预期输出“完成”。也许你正在检查的网站真的没有返回?也许它需要或正在生产?关于这一点,您有什么代码?你是否在某处旋转事件循环?e、 g.qapp.exec()?我应该在我的main()源文件中包含moc文件吗?
#include“client.moc”
只有在头文件中没有定义类时才有必要(并且您正在使用qmake
作为构建工具)。因为我在client.cpp中有所有的东西,所以我需要它,这样所有的东西都能被正确地提取和链接。实际上不是。今晚,我尝试在代码中包含QCoreApplication和app.exec()(是一个控制台应用程序)。我添加了QCoreApplication应用程序(argc,argv);/*对象和方法调用*/return app.exec();在top main()函数中,但它没有修复任何问题。找到解决方案了吗?我也有同样的问题。不,我停止了这个项目的工作