我有两个获得QNetworkRequest。Qt QNetworkAccessManager和多个QNetworkReply
我想处理来自不同方法的完成信号。
例如,这是在
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
GetUserData();
connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(GetUserDataCompleted(QNetworkReply*)));
GetMessages();
connect(nam, SIGNAL(finished(QNetworkReply*)), this, SLOT(GetMessagesCompleted(QNetworkReply*)));
}
这是我的一个方法
我试图replay-> deleteLater()的代码;但同样的结果
请咨询我可以创建一个RequestSender
类,其作用正在请求后,一些有用的东西
void MainWindow::GetUserDataCompleted(QNetworkReply *replay)
{
if(replay->error() == QNetworkReply::NoError)
{
QString getData = replay->readAll();
QMessageBox msg;
if(getData == "1")
{
msg.setText("User Is not Exits");
}
else
{
QDomDocument doc;
if(doc.setContent(getData))
{
QDomElement domElem = doc.documentElement();
QDomNode n = domElem.firstChild();
while(!n.isNull()) {
QDomElement e = n.toElement(); // try to convert the node to an element.
if(!e.isNull()) {
msg.setText(e.namedItem("Image").childNodes().at(0).nodeValue());
msg.exec();
}
n = n.nextSibling();
}
}
replay->deleteLater();
}
}
}
你的问题是什么?结果?是“connect(nam,SIGNAL(finished(QNetworkReply *)),this,SLOT(GetUserDataCompleted(QNetworkReply *)));”位于GetUserData()和GetMessages()内?或在同一个函数内? –
不是它们它们在MainWindow构造函数中看到我更新的问题 – user525717
你的期望结果是什么?你目前的结果是什么?顺便说一句,你不需要连接两次,一个就足够了。但是,它不会影响结果。 –