23

ソフトウェアを WIN と Linux の両方のプラットフォームで使用する必要がある場合、どちらを検討すべきか疑問に思っていましたが、その理由は何ですか?

4

10 に答える 10

24

GTK とその Windows への依存関係のパッケージ化は、それ自体がフルタイムのプロジェクトです。Qt は、Windows に付属していない依存関係がないため、はるかに簡単に配布できます。

Qt は最初からクロスプラットフォームでした。GTK は必ずしもクロスプラットフォームではありません。このような基本的な決定は、全体的な設計を形成するものであり、私の意見では、コードを作成する前に行う必要があります。

私はもっ​​とコメントしますが、私が確かに知っている上記の2つのことは、憶測に漂っています.

于 2008-10-14T15:07:47.480 に答える
14

どちらも長所と短所がある優れたツールキットです。

1 つの違いは、実装言語です。Qt は C++ であり、GTK+ は C です。ただし、GTK+ には他の多くの言語 (perl、python、C++、.NET など) のバインディングがあるため、大きな問題ではありません。

Qt の利点は、組み込まれている機能 (xml、データベース アクセス、ネットワーク プログラミング、openGL など) の範囲が少し広いことです。GTK+ は基本的にこれらすべてを軌道に乗せています (例: libxml2、librsvg、libsoup、libgda など) が、Qt ほど単一の一貫したパッケージではありません。

私の個人的な推奨事項は、GTK+ の C++ バインディングであるgtkmmを使用することです。より快適なオブジェクト指向言語をプログラミングに提供し、C から GTK+ を使用するのとほぼ同じネイティブ パフォーマンスを提供します (免責事項: 私は gtkmm に貢献しています)。

于 2008-10-14T01:27:36.853 に答える
5

GTK+ は、ほぼすべてのプログラミング言語で使用できます。C++ (gtkmm を使用) では C (gtk+) で C# (Gtk# を使用) では Python (PyGtk) で使用できます。GTK の背後には、クロスプラットフォーム向けの .NET Framework の優れた実装である Mono Framework があります。Gtk# を使用したい場合は、非常に強力な GUI デザイナーを備えた優れた IDE (MonoDevelop) を使用できます。www.mono-project.org をご覧ください。しかし、それでも何を構築したいかによって異なります。GUI ツールキットだけを見ているのか、それともフレームワーク全体を見ているのでしょうか。また、シグナル/スロットの背後にあるロジックは Gtk+ と Qt で同じですが、Gtk# を使用している場合は、デリゲート/イベント パラダイムに変換されます。

于 2008-10-14T00:55:06.420 に答える
5

私の $0.02:

私は過去 4 年間、Qt を断続的に使用してきました。Qt は、私が試したあらゆるツールキット (Win32、MFC、Borland、Java、GTK) の中で間違いなく私のお気に入りのツールキットです。GTK を数週間試してみましたが、気に入らなかったのです。それは主に、PC 上の GUI アプリに C++ の代わりに C を使用するのは厄介だと思ったからです... 私も組み込み作業を行っており、8051 では C++ を使用したことはありませんが、大きな GUI アプリの場合は C++ の方がはるかに好きです。 . GTK を試してみる場合は、GTKmmを調べることをお勧めしますが、私自身は使用したことがありません。

于 2008-10-14T01:00:23.697 に答える
4

wxWidgets も検討してください。私はそれらのいずれも使用したことがありませんが、クロスプラットフォームのツールキットを調べていたときに、試してみることに決めたものでした.

于 2008-10-14T01:03:37.743 に答える
3

Qt を支持する 3 つの追加ポイント:

  1. プロジェクトはGPL である必要はありません。BSD や LGPL など、 Qt GPL Exceptionで利用可能な他の多くのオープンソース ライセンスがあります。
  2. Windows での Qt のデフォルト テーマは、GTK の Wimp テーマよりもうまく溶け込みます。
  3. 後で Mac をサポートしたい場合は、Qt を使用するとはるかに簡単になります。
于 2008-10-15T00:40:07.683 に答える
3

私はQtを好むでしょう。今日と同様、Qt はオープンソースであり、より寛容な LGPL ライセンスの下で無料です。Qt は Windows への移植性が高く、GTK よりネイティブに見えます。たとえば、Windows 上の Gimp は、ほとんどのダイアログが Windows ダイアログではないため、非常に奇妙に見えます。Qt は、開く/保存などのネイティブ ウィンドウ ダイアログを使用できるため、フレームワークとしての使い勝手が向上します。はい、Qt はフレームワークであり、単なる GUI ウィジェットではありません。いいえ、ここで Qt を宣伝しているわけではありません。たとえば、Qt は開発の観点から Windows ユーザーにとって奇妙な点があるためです。たとえば、Qt はレイアウト ベースですが、MFC / .NET はアンカー ベースであり、Qt のレイアウト マネージャーは時々奇妙です。しかし、GTK と Qt のどちらかを選択する必要がある場合は、Qt を選択します。また、現在、Qt には非常に優れた IDE である Qt Creator が付属しています。これは、現在、すべてのタイプのプロジェクトのデフォルトの C/C++ IDE です (Qt Creator はそのように使用できるため)。

于 2012-04-27T00:10:14.327 に答える
3

どちらも優れたツールキットです。ライセンスに基づいて決定します。Qt を商用製品で使用する場合、ライセンス料を支払う必要がありますが、GTK では必要ありません。

于 2008-10-14T00:46:13.787 に答える
2

Qt5.0が戦争に勝ちました。私はC++の大ファンではありませんが(私は昔ながらのCが好きです)、Qtフレームワークが素晴らしいことを認めなければなりません。ネイティブのルックアンドフィールを備えたOSX、Linux、Windows(および間もなくiOSとAndroid)で実行されるGTKを使用してGUIプログラムを作成してみてください...頑張ってください!

于 2013-01-25T23:06:02.703 に答える
0

Qt を使用することをお勧めします。理由は次のとおりです。

  • クロスプラットフォームであり、幅広いオペレーティング システム (モバイルを含む) をカバーします。
  • オープンソースであり、改善速度が速い
  • 優れた GUI デザイナーと非常に有能な IDE (Qt Creator) を備えています。
  • API の設計が優れていて使いやすい
  • 読みやすい優れたドキュメントがあります
  • 多言語アプリを可能にするQt翻訳システムを備えています
  • レイアウトに応じてウィジェットのサイズを変更する GUI レイアウト システムにより、すべてがはるかに簡単になります。
  • QML は、素晴らしいグラフィックとアニメーションを備えた素晴らしい GUI を作成する力を与えてくれます
  • ネットワークと接続 (ソケット、SSL、www、IPC など) を強力にサポートしています。
  • コードをテストするためのQTestLibがあります
  • C++ を使用したくない場合は、多くの言語バインディングがあります。
于 2015-01-21T16:51:40.253 に答える