我检查了其他类似的问题并尝试了他们的解决方案,但它们对我不起作用.
I checked other similar questions and tried their solutions but they don't work for me.
我基本上是在尝试制作一个仅发出发布请求的 http 客户端.为了做到这一点,我需要将 QNetworkManager 的完成信号连接到某个回调槽.
I'm basically trying to make a http client that only makes post requests. In order to do this, I need to connect QNetworkManager's finished signal to some callback slot.
这是我的代码.
h 文件:
...
public slots:
void finishedSlot(QNetworkReply* reply);
private:
QNetworkAccessManager *network_manager;
...
cpp 文件:
...
Class1::Class1(){
network_manager = new QNetworkAccessManager(this);
QObject::connect(network_manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(finishedSlot(QNetworkReply *)));
}
...
void Class1::finishedSlot(QNetworkReply* reply)
{
// some logic with reply
}
...
如您所见,该插槽肯定存在,并且它是在头文件中的公共插槽下声明的.所以我不知道为什么会这样.我已经尝试过清理、运行 qmake 和重建.
As you can see, the slot is definitely present and it is declared under public slots in header file. So I have no idea why this is happening. I already tried clean, run qmake, and rebuild.
错误信息是:
"QObject::connect: No such slot QObject::finishedSlot(QNetworkReply*)"
"QObject::connect: No such slot QObject::finishedSlot(QNetworkReply *)"
有什么想法吗?
您可能忘记使用 Q_OBJECT 宏.每个实现自己的插槽/信号的类都需要该宏.不要忘记您需要将头文件/源文件添加到 .pro 文件中.
You probably forgot to use the Q_OBJECT macro. Every class that implements its own slots/signals needs that macro. Don't forget that you need to add your header/source file to the .pro file.
这篇关于QObject连接函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
如何在 C++ 中读取和操作 CSV 文件数据?How can I read and manipulate CSV file data in C++?(如何在 C++ 中读取和操作 CSV 文件数据?)
在 C++ 中,为什么我不能像这样编写 for() 循环:In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,为什么我不能像这样编写 for() 循环: for(
OpenMP 如何处理嵌套循环?How does OpenMP handle nested loops?(OpenMP 如何处理嵌套循环?)
在循环 C++ 中重用线程Reusing thread in loop c++(在循环 C++ 中重用线程)
需要精确的线程睡眠.最大 1ms 误差Precise thread sleep needed. Max 1ms error(需要精确的线程睡眠.最大 1ms 误差)
是否需要“do {...} while ()"?环形?Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?环形?)