Qt を使用していますか?なぜ使用するのですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/123012

  •  02-07-2019
  •  | 
  •  

質問

長所。そして短所は?どれくらい使いますか?ジャンビはどうでしょうか?

役に立ちましたか?

解決

私は 7 年間にわたって、いくつかのプラットフォームで C++ で行ったいくつかのプロジェクトで Qt を使用してきました。これはかなりうまく機能すると思いますし、当時は知らなかった言語 (Objective-C) をダラダラと使って開発するよりも、Mac でまともな GUI アプリを開発する方が間違いなく早かったと思います。

信号/スロットのメカニズムは少し奇抜だと思いますが、ひどいものではありません。少し使ってみれば、それは驚くべきものではありません。接続に関する問題は簡単に問題が発生します (または少なくとも問題はありました)。アプリは問題なく動作し、機能しなかったことを通知しないため、接続に関するリターンを常に確認することをお勧めします。

ジャンビは使ったことないです。

他のヒント

私は商業開発のために Qt を数年間使用してきましたが、非常に満足しています。

Qt の優れた点の 1 つは、大規模なライブラリ セットと GUI 機能 (XML 解析、スレッド、ネットワーキングなど) がすべて一貫したスタイルでマルチプラットフォームで提供されることです。これは、いくつかの目的でブーストを使用することはあっても、他のライブラリを使用する必要はほとんどないことを意味します。

私たちにとってもう 1 つの非常に重要な要素は国際化でした。以前の MFC ベースのアプリケーションでは、サポートする 2 つの言語に対して 2 つのローカライズされたバージョンを維持する必要がありました。Qt ベースのアプリでは、バージョンが 1 つだけです。

  • linguist を使用した Qt 翻訳システムは使いやすく、複数言語のサポートが簡単になります (もちろん、文字列を翻訳する必要がありますが、これは大変な作業です)。
  • レイアウトに従ってウィジェットのサイズが自動的に変更される GUI レイアウト システムにより、すべてがはるかに簡単になります。言語が異なれば、文字列の長さも異なります。固定サイズのウィジェット (MFC など) では、各ダイアログを言語ごとに調整する必要があります。調整しないと、ラベルの一部が切り取られます。Qt を使用すると、サイズが自動的に変更されます。もちろん、完全に正しく機能しない場合もありますが、それでもすべてがはるかに簡単になります。
  • QString はすべてを Unicode で実行し、さまざまなコーデックからの変換を非常に簡単に処理します。

非常に価値のあることの 1 つはソースへのアクセスですが、これは決して Qt に特有のものではありません。Qt ソースをチェックする機能によって、奇妙な動作が説明されたり、何かを達成する方法の手がかりが得られたりすることが何度かありました。

Qt にいくつかのバグが見つかりましたが、その一部は Trolltech に報告した後に修正されました。他のケースでは、回避策を提案しました。これらはすべてかなり不明瞭であり、私たちの開発に大きな影響を与えませんでした。

Qt の主な欠点の 1 つは、商用アプリケーションで使用するためのサードパーティ ライブラリがないことです。ただし、Qt はかなり完成されているため、開発するアプリケーションの種類によって異なりますが、私たちにとっては大きな問題にはなりませんでした。

ジャンビも使ったことないです。

Qt に関する私の長所と短所は次のとおりです。

長所:
クロスプラットフォーム
これが常に使用されていることはわかっていますが、Qt を使用して Windows と Linux の間を行ったり来たりした後では、立ち上げて実行するまでに必要な作業が驚くほど少ないことに驚きました。これは、私が Vim を Qt Designer でのみ使用しているという事実によって助けられていると思います。

QMake
これは Qt の私のお気に入りの側面の 1 つです。wxWidgets や FLTK などで作業を行った後は、さまざまなビルド システムをいじるのにとてもうんざりし、メイクファイルを手動で作成したくありません。現在は Qt 以外で CMake を使用していますが、徐々に Qt も CMake に移行していくと思います。ただし、QMake を使用するのはとても簡単です。

QTestLib
他の C++ 単体テスト フレームワークをいくつか検討し、QTestLib を使用してテストを作成したところ、NUnit(C#) に非常によく似た感触が得られ、数分以内にいくつかのテストに合格しました。また、独自のものを作成するのが非常に簡単であることに気付きました。 継続的インテグレーション 環境。

生産性において Java および .Net に最も近い
C++ について人々が言っ​​ているのを聞いたり読んだりする中で最も大きなことは、「Java または .Net を使用すると生産性が向上する」ということです。個人的な経験から言えば、Eclipse や Visual Studio が読み込まれる前に、Vim と Qt Designer を使用して Qt で実行するアプリケーションのプロトタイプを取得できます。また、.Net や Java にあるものと非常によく似たライブラリのセットを Qt にも入手できます。それが存在しない場合は、そこにある既存の C++ コードを活用できます。


短所:
価格
これが今思いつく最大の要因です。しかし、そのコストは 1 セント単位の価値があります。営業担当者に電話せずに何セント節約しなければならないかわかっていればのことです。私は中小企業割引があった時代にライセンスを購入しましたが、当時はその価値があり、3 倍の料金を支払っていたでしょう。それが現在の価格だと思います。

商用ライセンスがあればどこでも開発可能
どのプラットフォームでも開発できるようにしたいと思っていますが、別のプラットフォーム用に構築して販売することもできます。たとえば、Windows の商用ライセンスしか持っていない場合は、Linux で開発してから、Windows でビルドして展開します。私の知る限りでは、ライセンスを取得したプラットフォーム上でのみ商用アプリケーションを開発および構築できます。

ベンダーロックイン
まあ、これは個人的な詐欺のようなものです。私は会社の方向性や製品の方向性から逸れてしまうので、特定のベンダーに縛られるのが好きではありません。TrollTech は Nokia に買収されました。これが良いことなのか悪いことなのかはわかりませんが、あの規模の会社は悪いことをする可能性があります。


今のところは終わったと思います:)。ああ、私は Jambi を使用したことはありませんが、C++ で開発されたプラグインを Jambi で使用するのがいかに簡単かを知るために、いくつかのプロトタイプ プロジェクトを行うことに非常に興味があります。特に C++ プラグインを使用した Web インターフェイスとして Jambi を使用します。

正直に言うと、あまり読んでいないので、不可能か、非常に簡単かもしれません。

前職ではQtを使用していました。私はその数年前に Qt にほんの少ししか触れたことがなかったので、ほとんど Qt の初心者でした。

私が始めたとき、言語と環境を選択するように言われましたが、クロスプラットフォームのサポートが望まれていました。Qt と Java を試しましたし、C# も試してみました。各オプションを評価するために 2 日間を費やしました。

C++ 開発者としての私の経歴に多少の偏見があったのかもしれませんが、各オプションに時間を費やした結果、長い学習曲線を必要とせずに役立つヒントを示したのは Qt だけでした。

Qt に付属のドキュメントとサンプル アプリケーションにより、経験豊富な開発者でも Qt 初心者でもすぐに使い始められるようになりました。試用期間の終了までに、最終アプリケーションの UI プロトタイプ/モックアップを作成しました。Java/Eclipse、Java/SunStudio、C#/VS.net では、当時、重要な問題が発生するのに苦労しました。

シグナル/スロットに慣れるのに少し時間がかかりましたが、それほど悪くはありませんでした。接続に失敗したときにアサートする簡単なラッパーをいくつか書き、愚かなタイプミスによるアプリの停止を防ぎました。仕事から。

もう 1 つ気に入ったのは、Qt に必要なものがほぼすべて揃っていることです。ストレージ、ネットワーキング、GUI、スレッド、コンテナなど、名前を付けても構いませんが、Qt にはそれを処理するクラスがあります。ライブラリを混合すると問題が発生する可能性があるため、どの私見が重要であるかが重要です。

Qt のソース コードがあることは大きな利点であり、単なる興味のためでしたが、開発中に使用するデバッグ バージョンなど、自分が選択したコンパイラーと設定を使用して Qt をコンパイルできるようになりました。

Trolltech のサポートもかなり良いと思いました。Qt でいくつかのバグを報告しましたが、そのうちの 1 つは、私がまだプロジェクトに取り組んでいる間に (わずか 6 か月の仕事で) 修正され、リリースされました。

私が思い出せる唯一のマイナス点は、(VS を使用した) Qt オブジェクトのデバッグが難しいことでした。Qt オブジェクトを検査できる VS 用の Qt プラグインがありますが、私は無料バージョンの VS を使用していたため、プラグインは機能しませんでした。しかし、それは Qt のせいではありませんでした。

私はジャンビを使用したことがないのでコメントできません。

C++ では、他の選択肢は MFC と wxWidgets だけです。QT / wxWidgets は主に個人的な好みです。QT は優れたドキュメントを備えたクリーンなデザインだと思います。
QT を GPL に使用しない場合、開発者の給与の約 1 か月分の費用がかかります。

私は Qt を 2 年以上使用しています。

Qt で私が気に入っている点は次のとおりです。

  • 簡単なGUIプログラミング(MFCと比較)、QTデザイナー
  • 素敵なコンテナクラス
  • 優れたグラフィックス シーン フレームワーク
  • 役立つ例を含む優れたドキュメント
  • 翻訳サポート
  • 優れた技術サポート

強くお勧めできます Qt 開発者の日. 。参加できるチャンスがあれば、ぜひ参加してみてください!素敵でとても興味深い講演がたくさんありました。

Qt は非常に優れたライブラリですが、シートごとの開発者ライセンスが高価であるため、常にすべてのプロジェクトに役立つとは限りません。

ただし、使用しないでください...

プロ:QT にはオプションの 3 フェーズ レイアウトがありますが、WX では現在 2 フェーズしか許可されていません (3 フェーズを計画していると思いますが、まだ取り組んでいないだけです)。

レイアウトの使用に関する大きな問題の 1 つは、静的テキストと折り返しです。WX は、最小の幅/高さ、および画面外の部分の大きさを尋ねます。QT には、どのくらいの幅が必要か、X 幅の場合はどのくらいの高さが必要かを指定するオプションがあります。これにより、ページの流れをより適切に表現できるようになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top