V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
salamanderMH
V2EX  ›  问与答

Qt 的一个设计问题请教?

  •  
  •   salamanderMH · Feb 16, 2020 · 1859 views
    This topic created in 2264 days ago, the information mentioned may be changed or developed.

    问题

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

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

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

    5 replies    2020-02-16 18:17:07 +08:00
    imn1
        1
    imn1  
       Feb 16, 2020
    返回多个信号呢?
    masje
        2
    masje  
       Feb 16, 2020
    “任何软件工程遇到的问题都可以通过增加一个中间层来解决”
    mxalbert1996
        3
    mxalbert1996  
       Feb 16, 2020 via Android
    如果你是想实现每个 Callback 只被执行一次,那么可以在 slot 函数里 disconnect,如果你想让后面的 Callback 覆盖前面的 Callback,那么除了 connect 前 disconnect 之外,你还可以用一个 std::function 成员来存 Callback。
    vincentxue
        4
    vincentxue  
       Feb 16, 2020
    我发了封邮件给你,附上了一些代码,我们可以邮件里探讨。
    salamanderMH
        5
    salamanderMH  
    OP
       Feb 16, 2020
    @vincentxue 谢谢,我研究下。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   938 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 20:26 · PVG 04:26 · LAX 13:26 · JFK 16:26
    ♥ Do have faith in what you're doing.