66

I'm looking at starting a project in C++ using the Qt 4 framework (a cross-platform GUI is required). I've heard great things about the Boost libraries from friends and online. I've started reading up on both and wanted to ask a cursory question before I got too deep: Are these two development "systems" mutually exclusive?

My initial searching and reading shows some overlap in the signal handling, custom build systems, and other low-level primitives.

Does it make sense to use them both in the same project?

4

6 に答える 6

54

はい、それは完全に理にかなっています。私は通常、Qt の代替機能ではなく、可能な場合は boost/stdlib 関数を使用することを好みます。

コードを次のフレームワークに移植しやすくします。
これにより、Qt 以外の新しいプログラマーが簡単に理解できるようになります。
ブーストにはいくつかの優れた機能があり、常に機能が向上しています。

注: ウィジェットとの間の文字列は、おそらく主な例外です。GUI 内では、Qt 文字列を使用して、紛らわしいキャストをどこでも保存します。

于 2008-12-11T17:30:43.153 に答える
31

この論文では、QT とBoost::Signalのシグナルスロットメカニズムを非常に適切に比較しています。このミックスに少し興味がある人は必読です。

于 2009-03-29T21:14:16.033 に答える
18

特に、クロスプラットフォームに移行する場合は、ビジネス ロジックとデータ アクセスを GUI から可能な限り削除して、適切に階層化されたアーキテクチャを用意する必要があります。この場合、アプリケーションのバックエンドを記述するときに Boost を使用し、フロントエンドの Qt にのみジャンプし、必須のキャストの山をグルーで行うのが理にかなっています。

「エンジン」が GUI の選択とは別のものである場合、将来的に Qt を別のもの (おそらくネイティブ ライブラリ) と最小限の労力で交換することができます。

于 2009-03-03T11:36:41.053 に答える
7

私たち (Last.fm) は両方を一緒に使用していますが、使い始めたばかりで、まだ十分な経験がありません。これまでのところ、すべて問題ありません:)

于 2008-12-12T12:41:56.737 に答える
3

Boost Signals2が利用可能であり、スレッドセーフであることを考慮してください。

于 2011-01-18T13:57:19.627 に答える