Qt 的一个设计问题请教?

2020-02-16 16:23:01 +08:00
 salamanderMH

问题

按之前的习惯,我把业务要用到的请求方法都放到了一个类中,类似叫httpHelper吧,里头 new 了一个QNetworkAccessManager,通过这个 nam 发送请求,类内部connectfinished的信号,绑定到一个内部方法统一处理响应,这个方法里头会处理一些业务( json 解析,错误处理),然后emit一个自定义的信号。

上面是我的做法,但这样做,我在外部其他类中,很多地方都要connect这个自定义信号,而 connect 有个问题,只要连接了,之前的 slot 都会被触发,所以我得把之前的 slot 都得disconnect掉,很多方法都都这样,这是我的设计问题吧。

ps:我就刚看了 slot 和 signal 就开始写了,理解不深。

1312 次点击
所在节点    问与答
5 条回复
imn1
2020-02-16 16:37:11 +08:00
返回多个信号呢?
masje
2020-02-16 16:38:10 +08:00
“任何软件工程遇到的问题都可以通过增加一个中间层来解决”
mxalbert1996
2020-02-16 17:23:14 +08:00
如果你是想实现每个 Callback 只被执行一次,那么可以在 slot 函数里 disconnect,如果你想让后面的 Callback 覆盖前面的 Callback,那么除了 connect 前 disconnect 之外,你还可以用一个 std::function 成员来存 Callback。
vincentxue
2020-02-16 17:30:55 +08:00
我发了封邮件给你,附上了一些代码,我们可以邮件里探讨。
salamanderMH
2020-02-16 18:17:07 +08:00
@vincentxue 谢谢,我研究下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/645025

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX