0

私は現在、いくつかの既存の大きなC++コードを使用してツールを開発しています。私は現在、model-view-controller(MVC)デザインの使用を考えています。モデルには、すべてのC++コードが含まれている必要があります。ビューはユーザーに表示されるものであり、コントローラーは基本的にモデルとビューの間の接着剤です。

私が探している機能は次のとおりです。

  • MVCによる拡張可能なデザイン
  • テキストユーザーインターフェイス(TUI)、ターミナルおよびグラフィカルユーザーインターフェイス(GUI)オプション
  • GUIはいくつかのテキストファイルをロードする必要があります
  • GUIは、ユーザーのテキスト入力を使用して、いくつかのアルゴリズムを実行し、いくつかの出力値を生成する必要があります
  • GUIは最終的にポップアップ、保存、GNUプロットなどのグラフを表示する必要があります。
  • C ++コードはEclipseでうまく機能します(ライブラリ、インクルード、ビルドオプション)
  • やがて、新しいアルゴリズムがC ++コードに追加される予定ですが、これは大きな問題にはならないはずです。

今私は3つの解決策を見つけました:

  • QT-> QT Creatorは、QTの利点にもかかわらず、Eclipseからの移行を面倒にするIDEの使用をほぼ要求しています。QTもGUIの周りに奇妙な構造を要求しているようですので、コントローラーの作り方について混乱しています。Eclipseプラグインは現在機能していません。QTとNokiaのFTPで見つかりません。
  • GTKmm-> Cから来て、いくつかのものが必要な理由を理解するのが少し難しい場合があります。私はこれをMVCデザインで機能させることができると信じています。
  • 共有ライブラリ(JNI)を使用したJavaSwing->JavaとC++を使用しますが、これは少し奇妙です。JNIを使​​用すると、既存のC++コードで追加の作業が必要になる場合があります。

私はJavaSwingの経験がありますが、QTとGTKmmの経験はほとんどありません。

では、経験の浅いUI開発者として既存のC ++コードをすでに持っている場合、GUIを作成するための最良の解決策は何でしょうか。

4

1 に答える 1

3

あなたの3つのオプションのうち、私は間違いなくQtを選びます。

基本的に、Qtを機能的なGUIにするにはQApplicationshow()ある種のウィジェットを起動してから、アプリケーションのイベントループを開始する必要があります(QApplication::exec())。

http://qt-project.org/doc/qt-4.8/qapplication.html

http://qt-project.org/doc/qt-4.8/qapplication.html#exec

Qtは非常に柔軟性があり、よく考えられており、強い支持を得ています。そして、それは信じられないほどのドキュメントを持っています。

既存のC++データ構造を操作するには、GUI用のメインウィジェットの1つとしてメンバー変数としてそれらを構築するだけです。次に、それにアクセスして情報を表示したい場合、それは簡単なことです。

http://qt-project.org/doc/qt-4.8/qwidget.html

http://qt-project.org/doc/qt-4.8/qmainwindow.html

QtのほとんどのGUI要素はビューとしてのみ機能し、明確なモデルとコントローラーのセットアップはありません。それは開発者に任されています。データベース、ツリー、またはアイテムのグリッドを表示している場合、モデル/ビューフローがありますが、それはアプリケーションには当てはまらないと思います。

SIGNALSとSLOTSを理解して使用することは、QtでインタラクティブなGUIを作成するために不可欠であり、非常に簡単です。

http://qt-project.org/doc/qt-4.8/signalsandslots.html

http://qt-project.org/doc/qt-4.8/qobject.html#details

そこにあるさまざまな種類のQWidgetをすべて読むと、質問にリストした各要素を見つけることができるはずです。

ここにあなたが見なければならないいくつかがあります:

http://qt-project.org/doc/qt-4.8/qtextstream.html

http://qt-project.org/doc/qt-4.8/qtextedit.html

http://qt-project.org/doc/qt-4.8/qlineedit.html

http://qt-project.org/doc/qt-4.8/qlabel.html

そしてもちろん、Qtに付属しているチュートリアルと例を見てください。

QtでGNUPlotを使用する方法

http://lists.trolltech.com/qt-interest/2002-12/thread00068-0.html

また、Qt CreatorとEclipseの両方を使用した開発者として、私はQt Creatorを好みます。プロジェクトを移植して、QtCreatorで動作させるのは非常に簡単です。QtライブラリとQMakeを使用するようにEclipseのビルドチェーンを変更したい場合は、それも可能です。

http://qt-project.org/doc/qt-4.8/qmake-project-files.html

http://qt-project.org/doc/qt-4.8/qmake-project-files.html#declaring-other-libraries

http://therning.org/magnus/archives/1023

お役に立てば幸いです。幸運を。

于 2013-03-15T17:46:57.497 に答える