GUI を作成する必要はあまりありませんが、今日は作成しているので、デザインの入力を期待していました。
基本的に、MVC パターンを使用して GUI も追加する予定のバックエンドがあります。問題は、メイン GUI ウィンドウをカプセル化するクラスが何であれ、多くの状態 (すべてのサブ要素) を持つことになると感じていることです。それに加えて、多くのセッターがあり、おそらくゲッター、クリア、カラー、サイズ、位置、およびリフレッシュ機能もあります。
1 つのオプションは、このアイデアを進めて、GUI が使用する型 (
std::string
、std::vector<std::string>
...) を処理する非常に大きなパブリック インターフェイスを用意することです。UI をより細かく制御したいほど、より多くのパブリック メンバー関数が必要になります。もう 1 つのオプションは、プログラムの状態を GUI に渡し、それをどのように表示するかを決定させることです。これを行うと、詳細な制御が少なくなり、懸念事項の分離が崩壊し、プログラムの状態を表現するには、GUI も変更する必要があります。
この問題に関する意見は非常に役立ちます。
違いがある場合、これは ncurses 抽象化を使用した C++ GUI です。