发送信号时,Qt C++插槽不被调用
Qt C++ Slot is not called when Signal is sent
调试后,我确信当我调用这个->getNetReply()时没有调用replyFinish()槽。这些是我的文件,在main()函数中,我这样调用getNetReply:Networking a;a.getNetReply();我确实在qmake中添加了QT+=网络。请帮帮我。非常感谢。
我的networking.cpp文件
#include "networking.h"
#include <QUrl>
#include <QNetworkRequest>
// constructor
void Networking::getNetReply(){
QNetworkAccessManager *man = new QNetworkAccessManager(this);
QObject::connect(man, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply *)));
qDebug() << "connected";
QNetworkRequest req;
req.setUrl(QUrl("http://www.google.com"));
man->get(req);
}
// this method not called
void Networking::replyFinished(QNetworkReply *reply){
QByteArray data = reply->readAll();
QString str = QString(data);
this->netRep = str;
code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
}
我的networking.h头文件:
#ifndef NETWORKING_H
#define NETWORKING_H
#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkReply>
class Networking : public QObject
{
Q_OBJECT
public:
QString netRep;
int code;
explicit Networking(QObject *parent = 0);
void getNetReply();
public slots:
void replyFinished(QNetworkReply*);
};
#endif // NETWORKING_H
相关文章:
- QT 插槽未在主线程上调用
- Qt信号和插槽如果从QRunnable或其他线程调用,则不起作用
- Qt插槽调用了两次
- 从插槽调用 QApplication::p rocessEvents 会导致再次调用同一插槽
- 如何使用 signals.boostv2 调用特定插槽
- 通过 id 访问 QML 插槽中的嵌套对象(从 c++ 调用)
- 当再次触发信号时,从Qt插槽执行的功能被第二次调用时会发生什么?
- 插槽调用了两次qt
- QListView 的插槽::d ouble点击未被调用
- 类继承自QLabel,为什么不调用自定义插槽?
- 为什么插槽函数即使成功调用也无法插入文本
- 有没有办法调试排队等待对象的Qt插槽调用
- 当对话框中的任何小部件发出信号时,是否可以调用插槽
- 这是在Qt信号和插槽中使用参数调用函数的好方法吗?
- 从第二个线程调用Qt信号有效 - >对连接的插槽没有影响
- 通过插槽打印/显示QT函数调用的内容
- Qt插槽调用两次
- 调用未连接的Qt插槽.调用未连接的
- QT小部件插槽调用没有被单独的线程信号激活
- Qt队列连接中的插槽调用顺序