1

ノードグラフを使用して一連のデータを処理する方法を理解しようとしています。これは、ギター用のペダルがたくさんある場合のように、サウンド データを操作するアプリケーション用です。有向グラフで相互に接続された定義済みのプロシージャを持ついくつかのノードがあります。それぞれが順番にデータを処理し、1 つが完了すると、次のノードに処理を行うよう信号を送ります。アイデアは、UI を使用してこれらのノードをつなぎ合わせるというものです。

UIの作成にQtを使用しているため、上記の問題に使用できるものがあるかどうかを確認するためにQtのドキュメントを調べていました。そして、Qtステートマシンを見つけました。私が読むことができるものから、必要なことをしているように見えます。状態に入り、何らかの処理を行い、完了すると終了信号が与えられ、グラフの次の状態が開始されます. また、状態をネストして、既存のノードを組み合わせて新しいノードを作成できるという事実は、魅力的なアイデアのように思えます。

ただし、ステート マシンは、ウィジェットの属性を変更する (状態を変更する) ために作成されたものであり、プロシージャをラッピングするためのものではありません。たとえば、ボタンが押されると、ステート マシンが別のウィジェットの状態を変更します。たとえば、ボタンが離されると、状態が元に戻されます。

したがって、Qt、ステート マシン、またはノード グラフによる処理の経験が豊富な人であれば、ステート マシンを微調整して手順をラップするかどうかのヒントを得ることができます。または、Qt ライブラリに他に使用できるものがある場合は?

4

1 に答える 1

0

私は QStateMachine をオンライン メッセージ処理 (オンラインアルゴリズムという意味でのオンライン) に使用しましたが、問題なく動作しました。元のアイデアがウィジェットを変更することだったという理由だけで、制限はありませんでした。

ただし、ステートマシンはあなたが説明したものとまったく同じではないため、個人的にはあなたのプロジェクトには使用しません。ニーズに合わせて曲げることは可能かもしれませんが、それは確かに奇妙です. より良い解決策は、基本クラスとそれらを接続するための分離されたグラフ実装を持つ「効果」を備えた素敵なポリモーフィック OO モデルを作成することです。Qt シグナルを使用して、グラフを終了し、次のステップに進むことを知らせることができます。また、ステート マシンの状態と遷移を動的に作成するよりも、データからカスタム グラフを作成する方が簡単です。

于 2011-12-06T10:27:29.637 に答える