2011-12-15 15 views
1

MVCアーキテクチャで作業しています。私は自分のGUIをすべてセットアップして、データアクセスのためにモデルを使用しているコントローラを持っています。私の質問は、コントローラとGUI(ビュー)の間で双方向のデータフローを設定する方法です。私はQtを使用していますので、ボタンを押すとアクションが実行されます。そのアクションをコントローラーに発動させるためには、そのインスタンスが必要です。コントローラ側からは、ビューのインスタンスが必要なので、どのように振る舞うかを教えてください。ですから、どのようにしてこのコミュニケーションを達成できますか?私は正しい軌道にいますか?皆さんの考えをお聞かせください。C++で2つのクラス間でデータを双方向に渡す方法

おかげ

答えて

2

ビュー、コントローラの明示的に意識する必要はありません。コントローラはビ​​ューの信号のいずれかに接続でき、信号は関連するデータを中継することができ、空でも可能です。コントローラがスロット内でそれらを処理するとき、ビューにメソッドを呼び出して、データにまだ含まれていない場合はデータをフェッチすることができます。コントローラはいつでも任意のビューメソッドを呼び出すことができます。

私は通常、ビュークラスのスロットに直接ウィジェット(ボタン)信号を接続し、すべてのウィジェットを公開するのではなくコントローラが接続できるカスタム集約信号を公開します。

+0

コントローラのビューの参照を渡す必要がありますか? – PTBG

+0

@PTGB:多くのビュー/コントローラーの組み合わせ(コントローラーとビューの間に1-1ではない)がある場合は、それを行うか、他の場所で信号/スロット接続を行います。 – Macke

+0

おかげで、私はあなたの助けに感謝します – PTBG

関連する問題