用于创建可视状态机的GUI

时间:2011-02-11 18:48:25

标签: qt user-interface visio fsm

我想创建一个允许用户创建可视状态机的应用程序GUI。该界面与Microsoft的Visio产品类似,用户在其中添加块或圆(状态),然后使用表示状态或事件更改的箭头线连接状态。在后端,我希望GUI创建一个SCXML文件来描述重要的连接。

请参阅:维基百科中的SCXML

以下是其他一些要求:

  1. 跨平台(Linux / Windows / MAC OSX)
  2. 开源
  3. 用户友好的
  4. Qt实施 - (首选,不需要)
  5. 以下是一些相关项目:

    1. http://ostatic.org/fsme - 不适用于新版本的Qt,维护不良
    2. http://doc.qt.nokia.com/4.6/graphicsview-diagramscene.html - 非常接近,但缺少某些功能,例如两个州之间的多个连接。
    3. 如果没有其他选择,我将采用Qt的Diagram Scene示例(上图)并根据我的需要进行修改。

      我很想知道是否有其他人知道一个动态创建可视状态机的良好支持和完善的工具。

4 个答案:

答案 0 :(得分:2)

qfsm

答案 1 :(得分:1)

你见过AutomataEditor吗?它甚至可以模拟自动机的工作。

它是用Qt编写的,它是开源的。

答案 2 :(得分:0)

您可能需要查看免费的QM建模工具:http://www.state-machine.com/qm。 QM是在最新的Qt 4.7中开发的,可在Windows和Linux平台上运行。该工具专为分层状态机(UML状态图)而设计。如果您了解此类型的其他图形工具(IBM Rhapsody,BoUML,MagicDraw,Enterprise Architect,甚至是Visio),您将会很容易在QM中创建嵌套状态和路由转换。该工具基于成熟的QP状态机框架生成C或C ++代码。 (自动代码生成几乎总是基于框架。)QM主要针对嵌入式实时系统。

答案 3 :(得分:0)

我想你说过

  

“我想创建一个应用程序GUI”

这意味着您需要一些框架来构建应用程序..!如果我是对的, 你可以看看这个名为JointJS的Javascript框架 它是一个 JavaScript Diagramming Library 。该网站名为FigurePool 是使用jointjs构建的图形编辑器GUI的一个很好的例子!我希望这些信息对您有所帮助。

我也将它用于Reservation Table Analyzer状态机。