web-dev-qa-db-ja.com

Qtを使用していますか?なぜそれを使用するのですか?

長所。と短所?どのくらい使用しますか?ジャンビはどうですか?

26
Serik

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

信号/スロットのメカニズムは少しファンキーだと思いますが、恐ろしいことではありません。少し使用すると、ショーストッパーではありません。接続関連のものは簡単にまとめることができ(または少なくともそうでした)、アプリが途中で楽しく動作し、機能しなかったとは言わないので、それらのリターンを確認することは常に良いことです。

私はジャンビを使ったことがありません。

11
itsmatt

私はQtを商業開発に数年使用しており、非常に満足しています。

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

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

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

非常に価値のあることの1つは、ソースへのアクセスですが、これは確かにQtに固有のものではありません。いくつかの場合、Qtソースをチェックする機能は、いくつかの奇妙な動作を説明したり、何かを達成する方法の手がかりを与えたりしました。

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

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

私もジャンビを使ったことがありません。

30
David Dibben

Qtの長所と短所は次のとおりです。

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

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

QTestLib
他のいくつかのC++ユニットテストフレームワークを調べましたが、QTestLibを使用してテストを作成したとき、NUnit(C#)と非常によく似ており、数分以内にいくつかの合格テストがありました。また、独自の 継続的インテグレーション 環境を作成するのは非常に簡単であることに気づきました。

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


短所
価格
これは私が今考えることができる最大の要因です。ただし、営業担当者に電話をかけずに何セント節約する必要があるかを知っていれば、コストは1セントの価値があります。私は彼らが中小企業の割引を受けた日にライセンスを購入しました、そしてそれはそれだけの価値がありました、私は3倍の金額を支払っていたでしょう、そしてそれは現在の価格だと思います。

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

ベンダーロックイン
まあ、これは個人的な欠点です。私は会社の方向性と製品の方向性に追われてしまうので、特定のベンダーに縛られるのは好きではありません。 TrollTechはNokiaによって購入されました。これは良いか悪いかはわかりませんが、その規模の会社は悪いことをすることができます。


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

正直なところ、あまり読んでいないので、無理かとても簡単かもしれません。

8
Chris Roland

以前の仕事でQtを使用しました。私はその数年前にQtとの接触が最も短いだけだったので、私はほとんどQtの初心者でした。

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

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

Qtとサンプルアプリケーションで提供されるドキュメントにより、経験豊富な開発者は非常に簡単になりましたが、Qtの初心者は非常に迅速に起動して実行できます。試用期間の終わりまでに、エンドアプリケーションのUIプロトタイプ/モックアップを作成しました。 Java/Eclipse、Java/SunStudio、C#/ VS.netでは、その間に重要なことが起こるのに苦労しました。

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

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

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

また、Trolltechのサポートはかなり良いと思いました。 Qtでいくつかのバグを報告しましたが、そのうちの1つは、プロジェクトの作業中に修正およびリリースされました(6か月の仕事のみ)。

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

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

5
Rodyland

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

3
Martin Beckett

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

Qtで私が好きなものは次のとおりです。

  • 簡単なGUIプログラミング(MFCと比較して)、Qt Designer
  • 素敵なコンテナクラス
  • 素敵なグラフィックシーンフレームワーク
  • 有用な例を含む優れたドキュメント
  • 翻訳サポート
  • 優れた技術サポート

Qt Developer Days を強くお勧めします。参加する機会があれば、ぜひ参加してください。そこにはたくさんの素敵で非常に興味深い話があります。

3
Thomas Koschel

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

長所:QTにはオプションの3フェーズレイアウトがありますが、WXでは現在2フェーズしか許可されていません(3フェーズを実行する予定であり、まだ機能していないと思います)。

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

0
Greg Domjan

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

0
adum