【问题标题】:QStateMachine immediate transition from dummy stateQStateMachine 从虚拟状态立即转换
【发布时间】:2015-03-19 22:56:29
【问题描述】:

为了根据转换设置对象属性,我需要两个立即进一步转换的中间状态:

   A       initial state
 Ta Tb     different transitions
 Aa  Ab    (these are only used to set an objects property depending on transition)
 TB TB     both should immediately "transit"
   B       objects property used via entered()/exited() signals

(或者,可以复制 B 以直接设置每个相应的属性。)

一个状态的entered() 信号可以用作它自己的转换源吗?

【问题讨论】:

    标签: c++ qt qstatemachine


    【解决方案1】:

    只需向状态添加一个无条件转换:

    TB->addTransition(B);
    

    这是惯用的,而且比使用与entered() 信号耦合的QSignalTransition 更便宜。

    参考:http://doc.qt.io/qt-5/statemachine-api.html#targetless-transitions

    【讨论】:

      【解决方案2】:

      是的,QState 的entered() 信号可以用作转换源。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-08
        相关资源
        最近更新 更多