我目前正在将一个小型应用程序从 PyGTK 移植到 PySide,它位于您的系统托盘中,并定期检查服务器是否有更新。
当我最初写这篇文章时,我使用了一个自定义状态模型来表示它的行为:
- init:初始状态
- 检查:检查服务器是否有更新
- 断开连接:没有连接到服务器(等待一段时间再试一次)
- 错误:服务器报告错误(用户需要在继续之前检查设置)
- idle:等待 POLLING INTERVAL 秒,然后再次检查
- 辞职
我后来发现 Qt 有 QStateMachine,它似乎非常适合这种类型的结构。但是,我无法将这些示例令人满意地应用于我的问题!
尤其:
- 在 QStateMachine 的上下文中,Signal 和 QEvent 有什么区别?
- 如何定义条件转换,即出错时转到...?
- 程序逻辑应该发生在 Transition.onTransition() 还是 QState.onEnter() 中?
非常感谢任何指针!