5

既に C++ プログラムを作成しており、そのための GUI を作成したいと考えています。Qt が素晴らしいツールであることは理解していますが、Qt には独自のクラスがあり、かなり混乱しています。例: String の代わりに、Qt には QString という名前のクラスがあります。

C++ コードと Qt コードを C++ で混在させることができるかどうか疑問に思っていますか?

4

6 に答える 6

1

std c++ コードと Qt コードを一緒に混在させることはお勧めしません。

たとえば、あなたの c++ コードはロジックであり、Qt コードは GUI 用である必要があります。MVC/MVP パターンなどを使用して、ロジックと UI を分離します。

したがって、UI を使用して/使用せずにコードを実行できるようになると、将来的にはより簡単になります。

于 2013-03-15T07:36:51.140 に答える
0

うん!Qt は、C++ コードで使用できるものです。Qt は主に GUI 向けですが、Socket、Containers、Network などに適したクラスです。STL やその他の通常のクラス、または Qt が提供するクラスを自由に使用できます。最大のポイントは、メイン コンパイルの前にコードで Qt を使用する場合は、メタ コンパイルを実行して、コンパイラで使用できるようにする必要があるということです。注意すべきことの 1 つは、Qt は標準ではないということです。つまり、Windows、Linux、および Mac OS をサポートしていますが、他のプラットフォームでは使用できません。

于 2009-08-28T22:58:55.710 に答える
0

それらは一緒に使用できます。

C++ には長い歴史があり、STL の実装とサポートは言語と共に進化してきました。元 Trolltech チームは、Qt ライブラリを STL 実装に依存させるには、STL 実装の品質と可用性を十分に制御できないと判断したと思います。その結果、Qt には独自の QTL、QtAlgorithms ヘッダー、および QString があります。

彼らは、STL と互換性を持つように注意を払いました。

  • ほとんどのコンテナーは、STL コンテナーと同様のインターフェースを持っています (例: イテレーター アクセス、push_back()、empty() など)。
  • Qt コンテナーは、STL コンテナーとの間で変換できます (例: QVector::toStdVector、QList::fromStdList)。
  • Qt コンテナは STL アルゴリズムで使用できます
  • QString は、 toStd(W)String / fromStd(W)String を使用して std::string および std::wstring との間で変換できます

個人的には、std::string より QString の方が使いやすくて強力です。

于 2009-08-29T09:47:24.223 に答える
0

はい、できます。

私は実際に一連の C ベースの関数用に Qt-GUI-wrapper を作成しました。Qt 統合に問題はありません。低レベルの C (メモリ リークが発生します...) のみです。

ここを参照してください: http://code.google.com/p/qhocr/

于 2009-08-29T10:06:04.293 に答える