1

我试图弄清楚如何使用节点图来处理一组数据。它适用于处理声音数据的应用程序,就像你有一堆吉他踏板一样。您有一些具有预定义过程的节点在有向图中相互连接。每个节点轮流处理数据,当一个节点完成后,它会向下一个节点发出信号以执行此操作。这个想法是您使用 ui 将这些节点拼凑在一起。

我正在使用 Qt 来创建 UI,因此我正在查看它的文档以查看是否有可以用于上述问题的东西。我找到了 Qt 状态机,从我能读到它似乎在做我需要的事情,进入一个状态,你做一些处理,当它完成时给出一个完成的信号,并且图中的下一个状态开始. 此外,您可以嵌套状态,让我能够通过组合现有节点来创建新节点,这似乎是一个有吸引力的想法。

然而,创建状态机是为了改变小部件的属性(改变它们的状态),而不是为了包装过程。例如,一个按钮被按下并且状态机改变另一个小部件的状态,例如,如果按钮被释放,则状态被交换回来。

因此,任何对 Qt、状态机或节点图处理有更多经验的人都可以给我一个提示,是否调整状态机来包装我的程序是否会起作用。或者,如果我可以使用 Qt 库中的其他内容?

4

1 回答 1

0

我使用 QStateMachine 进行在线消息处理(在线算法意义上的在线),它工作得很好,没有限制,因为最初的想法是修改小部件。

但是,我个人不会将它用于您的项目,因为状态机与您所描述的不完全一样。可能会根据您的需要弯曲它,但这肯定会很奇怪。更好的解决方案是制作一个漂亮的多态 OO 模型,其中您的“效果”具有基类和解耦图实现来连接它们。您可以使用 Qt 信号来表示完成图表以进行下一步。从数据构建自定义图也比动态地为状态机创建状态和转换更容易。

于 2011-12-06T10:27:29.637 回答