2009-02-25 12 views
19

かなり大規模で複雑なデータ解析プログラムを作成していますが、プログラムのGUIを構築するのは時間だと思います。だから私の質問は:Guiツールキットを使用しますか?

どのGUIツールキットを使うべきですか?

私は、GUIのコーディングとビルドに全く新しいので、提供できるガイダンスに感謝します。それは世界で最もシンプルなツールキットである必要はなく、私はかなり速く学びます。しかし、以下のことを行う必要があります(一部のツールキットでは、これらのすべてがおそらく非常に基本的なものではないかもしれませんが、場合によっては、このすべてをそこに投げるのが良いと思うものもあります)。

私はグラフ(実際にはスペクトル)、プロットなどをユーザが見るために置くことができるように、画面に直接描画する必要があります。私は上記のスペクトルをクリックした場所に関する位置情報を収集できる必要があります。私はテキストを表示し、ユーザーからのテキスト入力を取ることができる必要があります。メニューを生成できる必要があります(ファイル、編集などが分かります)。便利なテーブルを生成するためのウィジェットが組み込まれていれば(ただし、画面に直接描画することができればそれを超える可能性があります)。それは、警告、ダイアログボックス、保存して開くボックスなどをポップアップすることができる必要があります。それはかなりですが、これらのほとんどは、私がそれらを書くときにかなり基本的なようですが、GUIを部分的にコード化したいとは思わないし、私はそれを別のツールキットで書き直す必要があることを認識しています。

私はこのプログラムをC++で書いたことに注意してください.C++などのGUI部品を書く必要がないので、ツールキットはC++をサポートする必要があります。

さらに、単一のプラットフォームツールキットよりもクロスプラットフォームツールキットが望ましいでしょう。しかし、それが単一プラットフォームのツールキットでなければならないなら、私はそれがLinux用であることを好むでしょう。

最後に、クローズドソースツールキットのオープンソースのツールキットが劇的に好きです。

それ以外では何も追加することはできません。あなたの時間と答えに感謝します。

答えに基づいて、私はQtとwxWidgetsの両方を見て、私にどのような魅力があるかを見てください。私は受け入れられたとして複数の回答を受け入れることができましたが、私はできません。私は2つのことを見ているので、答えの1つだけを受け入れるのは不公平です。おそらく1〜2週間後にツールキットを見て、私が使用したいと思っています。

答えて

26

私の意見では、Qtは最もイライラしていないツールキットです。また、完全にクロスプラットフォームです。 Qtは、バージョン4.5が利用可能になる2009年3月にしばらくの間、LGPLのライセンスを受けていることに注意してください。現在、GPLと商用ライセンス版でのみ提供されています。

QtのGUIデザイナーがいいです。それは多くのユーティリティ関数(シーングラフライブラリ、翻訳サポート、組み込みのJavascriptエンジン、組み込みのWebKitライブラリ)を持っています。 MOC(特別なプリコンパイラ)を介して、C++に実行時バインディング機能とイントロスペクションをもたらします。

テクニカルアプリケーションについては、Qwt(http://qwt.sourceforge.net/)が必要なものを提供していることがあります。それはQtに基づいています。

QtはGUIなしで(ネットワーキングなどの)ユーティリティサポートが必要な場合でも「ヘッドレス」で使用できます。

他のクロスプラットフォームのC++オプションはwxWidgetsですが、これは使用可能ですが実際はQtに匹敵しません。これははるかに低レベルのツールキットであり、使い方が簡単ではなく、完全に丸められていません。GtkmmはGTK +の精神の中で別のオプションです。

+0

別のC++オプションFLTKがあります。確かに、それはOpenGLアプリケーションを対象としていますが、完全機能のC++ GUI APIであり、修正されたLGPL(静的リンク例外あり)の下にあります。 – greyfade

+0

Gtkmmもウィンドウ上で動作します。 – drby

+1

私はQtの提案をもう一度やります。私の経験上、Qtは最高品質のクロスプラットフォームGUIツールキットです。 –

1

Qt。 Qtの上に構築されたKDEも使用できます。

+0

これは愚かな質問かもしれませんが、KDEのLinuxだけではありませんか? –

+0

全く愚かな質問ではありません;-) KDEはLinux上ではほとんど使用されていますが、KDEライブラリを使ってアプリケーションを書くことはできますが、原則としてWindows上での実行を止めるものはありません。 –

19

WxWidgetsを試してください。クロスプラットフォーム(Linux、Mac OS X、およびWindowsでコンパイル)広く広く受け入れられています。

http://www.wxwidgets.org/

オープンソースすぎ!

4

私はそれはあなたがあなたのアプリケーションのためのターゲットとしているのOSのネイティブのルック・アンド・フィールをしたいかどうかによって異なり言うだろう。前述のQtはおそらく、クロスプラットフォームツールキットの中で最も使いやすいものですが、独自のウィジェットセットです。ネイティブのアプリの外観を&にしても、あなたがKDEで動作している場合を除き、あなたは感じません。

私は職場でwxWidgetsを使用しています。それは時折、いくつかの場所で非常に洗練されていないことができますが、それはあなたがターゲットとしているプラ​​ットフォームのネイティブなルック&フィールを与えます。実際にはネイティブのUIコントロールをラップして、wxWidgetsが移植されているすべてのプラットフォーム上で共通のAPIを提供します。

+1

Qtのデスクトップ上のルックアンドフィールは、デスクトップとのブレンドの点で著しく改善されました。 Windowsでは、実際にはWindowsアプリケーションのように見えます。 OS X、アプリケーションメニューバー、すべてで同じ。 –

+0

trueの場合でも、WindowsターゲットとMacターゲットには異なるクラスセットを使用することになります。 OS XのQMacStyleとWindowsのQWindowsXPStyleから、wxWidgetsはすべてのプラットフォームのための単一のAPIを持っています –

+0

Qtでスタイルがどのように機能するか誤解していると思います。実際のAPIは同じですが、スタイリングエンジンは別のコンポーネントであり、しばしば変更する必要はありません。特別な振る舞いを渡す唯一のケースは、独自の描画ウィジェットをスタイリングすることです。これはwxが処理しないものです。 –

3

また、私は本当に素敵な視覚的なGUIビルダーである、DialogBlocksと一緒wxWidgetsをお勧めします。

私はwxWidgetsのは、いくつかのラフなエッジを持っていますが、開発コミュニティは非常にアクティブで、バグレポート/質問/貢献に非常に応答性であることを言うだろう。

6

私は誰もGTKmmにコメントしました。これはGTK +のC++化であり、使用するのが本当に楽しいです。私はQtも使用しましたが、乱雑な信号/接続コード、moc_XXX生成ファイルなどは好きではありません。GTKmmにはシグナルなどがありますが、その前処理ステップではなく、Qtツールキットのほぼすべてがグラフィックアリーナ。

+0

GtkがLinuxでより一般的であることは言うまでもなく、ユーザーはアプリケーションのルック・アンド・フィールに多く慣れています。 – Lalaland

+0

CMakeを使うとき、 'moc'は自動的に処理され、ユーザーからの管理は必要ありません。 – antonone

4

私は同じ質問をして、良いGUIツールキットを探しました。

最後に、GUIツールキットでは不十分であることが判明しました。ビルド環境、IDE統合、ネットワークソケットやファイルI/Oなどの低レベル機能を提供する完全なプラットフォーム独立ソリューションが必要です。

私の結果は?私はQtを使って9年近く(GUIのものに限っては最初の年)、今はロードバランシング、大規模なマルチスレッドと画像処理を備えた非常に複雑なネットワークアプリケーションを持っています。

あなたは(私のような)プロフェッショナルサポートと商用ユーザーとしてのQtを使用するか、または単にGPLの下で独自のプロジェクトを開始し、(商用利用を許可する)LGPLと4.5とすることができます。

wxWidgetsやGTK ++のような他の選択肢は、GUIプログラミングにとって非常に良い選択肢です。

しかし、十分に文書化された完全なソリューションが必要な場合は、Qtを選択してください。

よろしく、 3DH

0

私は(ツールキット)+ wxFormBuilder(GUI-デザイナー)+ eclipse(IDE)wxWidgetsを使用しています。 すべてのツールはクロスプラットフォームで無料です。

関連する問題