2010-11-29 23 views
5

私はBoostを使って小さなプログラムをC++で書いています。それはうまく動作するので、私はそれを使用する方が簡単なようにグラフィカルなインターフェイスを与えたい。
これを行うには、ネイティブのルックアンドフィールを提供する小さなクロスプラットフォームのフレームワークを探しています。 WindowsとLinuxのサポートは十分ですが、現在はos xは必要ありません。C++用の小さなクロスプラットフォームのGUIフレームワーク

私はいくつかの他のプロジェクトにwxWidgetsを使用しましたが、すべてを設定してソフトウェアでこの大きなライブラリを出荷するのは苦労でした。
しかし、私は本当のネイティブコントロールの使用に本当に驚いていました。 プログラムを小さくするために、私もfltkを試しましたが、それはひどい見た目を持っています。

ネットワークサポートやその他の仕掛けがない単純なフレームワークが必要です。

私の質問:すべての要件に適合するフレームワークはありますか?そうでない場合、どのフレームワークがこれらのニーズの少なくとも一部に適合していますか?

ありがとうございます!

+0

どのようなコントロールが必要ですか? –

+0

すべての基本コントロール。ボタンテキストボックス入力フィールドラジオボタンと可能であればプログレスバー – tbolender

+6

クロスプラットフォームGUIフレームワーク!=小さい。 –

答えて

6

に合うべきだと思います。

とにかく、グラフィカルなフレームワーク/ライブラリは、大きなものになる傾向があります。そのため、多くのことを処理する必要があります。

QtはおそらくクロスプラットフォームのGUIのための最も簡単なライブラリですが、確かに「小さなフレームワーク」はありません。一方、Linuxシステムでは、Qtは既にインストールされている可能性が高いです。プラスそれは間違いなくそのサイズを支払う。

-2

QTについて聞いたことがありますか?

http://qt.nokia.com/products/

私はそれはそれはほとんど決して小さなません、その名前に単語「フレームワーク」を持っているとき、それはすべてのあなたのニーズに

+3

もちろん);)しかし、私はそれをwxWidgetsに匹敵する強力であるだけでなく、本当に大きなライブラリとして知る必要があります。私が間違っている? – tbolender

1

Qtは驚くほど効果的ですが、それほど小さくありません。私は、「小さな」クロスプラットフォームのGUIがまったくないことがわかりました。 #ifdefsであなたのGUIを抽象化しようとするか、Qt/wxを使用するかのどちらかです。

+0

#ifdefsを大量に使用しているのは、私がしたいことではありません。しかし、ありがとう:) – tbolender

4

wxwidgetsはguiのツールキットまではかなり小さいです。

、それはあなたがそれを言及しているが、限り、クロスプラットフォームのツールキットが行くように、それは私が見た最も小さいの一つだ。

http://www.wxwidgets.org/

クロスプラットフォームです

私が持っている他の唯一の提案は、あなたのコードをCライブラリにラップし、それを別の言語にリンクすることです。例えばWindows上で.NETを使用し、Linux用、またはJavaベースのアプリケーション用にモノを使用します(ただし、プラットフォームには常にネイティブに見えるとは限りません)。そこからあなたのライブラリを使用してください。

+0

彼は質問でwxWidgetsを言及します。私はそれがおそらくQtよりも小さいことに同意しますが、おそらく彼が彼のパラメータを得るために得られる最良のものです。 –

0

他の言われているように、同じ文章では「クロスプラットフォーム」とサイズの小さなものを混在させることはできません。

もっと細かい作業: 私が提案できる解決策の1つは、UI部分にネイティブのPythonバインディングを使用することです。 Boost.PythonをC++空間とPython空間の間でやりとりすることは、すでにブーストを使用しているので、かなり簡単です。あなたはすでにLinux上にpythonを持っていて、Windows上には20-40MBのパッケージを持っています(最新のリリースの大きさを覚えていないかもしれません)。しかしここでは、Windowsではwin32バインディングを、Linuxではgtk/qtバインディングを使用する必要があります。ナー、あまりにも多くの仕事を維持し、これを傷つける。

サイズは小さく、ネイティブではないコントロール: あなたのUI作業を完了させるためにクラッターやフリーグルートを試してみることはできますが、個人的に使用していないので、ネイティブであなたのアプリを探します。しかし、それらはwxまたはqtに比べてサイズが小さい。

作業量が少なく、サイズが大きい: WxWidgetsを使いたい場合はWxWidgetsを使用してください。それ以外の場合はQtをお勧めします。

はまた、他の製品のいくつかを見て持つことができます。http://en.wikipedia.org/wiki/List_of_widget_toolkits

クラッタ:http://www.clutter-project.org/about FreeGLUT:http://freeglut.sourceforge.net

+0

クラッターの使い方を教えてください。私はそれが、例えば、 SFMLのようなゲーム。しかし、私はドキュメントの実際のコントロールを作成する可能性を見つけることができませんでした。 – tbolender

+0

私が言ったように、私は個人的には乱雑さを使用していませんが、おそらくクラッターを使用してネイティブコントロールを取得しません。 UIのデザインをタブレットのアプリに似たものにする必要があります。 –

2

Ultimate++はあなたが必要なものを含まれている場合があります。 (彼らは自分のライブラリは本当に大きいですかのように、それはFAQに音作りが、それは私にはそれが悪いようではありません。)

+0

かなり面白いですね。このヒントをありがとう、私はそれをよく見ていきます。このフレームワークが簡単にセットアップできるかどうか知っていますか? – tbolender

+0

それは窓の下にあり、Linuxについて知りません、配布に依存するようです。 –

1

あなたがそれをしたい場合は、同様

+0

オプションと思われます。コントロールをエミュレートしますか?私はそれを見つけることができませんでした...しかし、同様にありがとう:) – tbolender

+0

私が知っている限り、はい、それはしばらく前に私はそれと一緒に遊んだ.. – stijn

+1

はい、juceはそのコントロールを使用し、スクラッチ。 –

1

juceをチェックすることを忘れないでください小さくても、GUIを2回書くだけです.1回はMFCで、その後はXで行います。あなたのGUIは簡単に聞こえます。必要なだけの小さな抽象化を構築してください。

関連する問題