按之前的习惯,我把业务要用到的请求方法都放到了一个类中,类似叫httpHelper吧,里头 new 了一个QNetworkAccessManager,通过这个 nam 发送请求,类内部connect
了finished
的信号,绑定到一个内部方法统一处理响应,这个方法里头会处理一些业务( json 解析,错误处理),然后emit
一个自定义的信号。
上面是我的做法,但这样做,我在外部其他类中,很多地方都要connect
这个自定义信号,而 connect 有个问题,只要连接了,之前的 slot 都会被触发,所以我得把之前的 slot 都得disconnect
掉,很多方法都都这样,这是我的设计问题吧。
ps:我就刚看了 slot 和 signal 就开始写了,理解不深。
1
imn1 2020-02-16 16:37:11 +08:00
返回多个信号呢?
|
2
masje 2020-02-16 16:38:10 +08:00
“任何软件工程遇到的问题都可以通过增加一个中间层来解决”
|
3
mxalbert1996 2020-02-16 17:23:14 +08:00 via Android
如果你是想实现每个 Callback 只被执行一次,那么可以在 slot 函数里 disconnect,如果你想让后面的 Callback 覆盖前面的 Callback,那么除了 connect 前 disconnect 之外,你还可以用一个 std::function 成员来存 Callback。
|
4
vincentxue 2020-02-16 17:30:55 +08:00
我发了封邮件给你,附上了一些代码,我们可以邮件里探讨。
|
5
salamanderMH OP @vincentxue 谢谢,我研究下。
|