GTKアプリケーションとQTアプリケーションの違いは何ですか?


54

多くのパッケージは、GTKバージョンとQTバージョンの両方で利用できます。

  • それらの違いは何ですか?
  • パフォーマンスや作業方法に違いはありますか?

回答:


41

一般的に、ユーザーの観点からの違いは純粋に表面的なものでなければなりません。QtとGTKはテーマを個別に設定します(たとえば、qtconfigまたはを介してgtk-chtheme)が、これは一部のデスクトップ環境によって調和されています。

GNU / LinuxはQtよりもGTK指向である傾向があり、前者の方がより一般的に使用されているという意味で、選択肢が与えられたときにそれを好むかもしれません。例外は、独自のアプリケーションにQtを使用するKDEの下にありますが、これらの要因はどれも非常に重要ではありません。

より重要な問題は、RAMが非常に限られている場合(たとえば、1/4 GB未満)です。この場合、システムでGTK または Qt のみを使用し、両方は使用しないようにする必要があります。ただし、ギガバイトのメモリを備えた最新のデスクトップでは、これは問題になりません。両方を広範囲に使用すると、50〜100 MBの余分な(ワイルドな推測)コストがかかる場合があります。


GTK(2と3)とQt(3と4)の両方の異なるバージョンもまだ広く使用されていますが、下位互換性はありません(Qt 3アプリケーションはQt 4ライブラリを使用できません)。ただし、両方のバージョンが同時にシステム上に存在する可能性があり、これの最も深刻な結果は、混乱の可能性ともう少し多くのメモリの膨張です。


8
LinuxがよりGTK指向であるという結論に至るまでの経緯を知りたいと思いますか?Linuxは通常、GUIユーザー空間プログラムではなくOSカーネルであるため、一般にどちらのツールキットにも偏らないLinuxカーネルのみを意味します。もしあなたがGNU / Linuxをオペレーティングシステムとして暗示するつもりだったら、私はあなたの主張にまだ異議を唱えるでしょう。Ubuntuが最も人気のあるディストリビューションであるためGNU / LinuxはGTK指向であると言うことは、サッカーが世界で最もプレイされるゲームであるため、Christiano Ronaldoが最高のスポーツマンであると言っているようなものです。(私はあまりにも反論したい)
darnir

10
@darnir私は口語的な意味でオペレーティングシステムを意味したので、「GNU」修飾子を入れます。私は、というのが私の論文守るよそれは指向のQtよりもGTK:GTK(本来は「GIMPツールキット」のために立っていた、とGIMP = GNUの画像操作プログラム)、GIMP、およびGNOMEは、すべてのGNUプロジェクトとコア部分でありますカーネルとペアになったオペレーティングシステムに対する(ユーザーランドの)ビジョンの歴史は、「Linux」の歴史です。そのため、GTKはにLinux用に開発れ、ネイティブC(vs. QtのC ++)でもありますが、Qtは純粋にクロスプラットフォームのエンティティです。
goldilocks

1
GTKの歴史と語源については同意しますが、これは暗黙的にGNU / LinuxがGTK指向であることを意味するものではありません。実際、その反対は真実であり、あなたの声明によって確認されます。GTKはLinux 向けに設計されたものであり、その逆ではありません。Linuxをカーネルとして、GNU / Linuxをオペレーティングシステムとして、GUIツールキットにとらわれないという主張を擁護します。GTKは、Ubuntuの依存度が高いため、Qtよりも多くの人によく見られます。また、システムリソースが軽いという事実も役立ちます。
darnir

3
@darnirはい、OSは本質的に不可知なWRT GUIツールキットです。GTKが「ネイティブ」ツールキットなどであると主張するつもりはありません。Ubuntuが存在する前のプラットフォームで最も広く使用されていたツールキットは、すべてのディストリビューションで広く使用されている他の基本的な部分との前述の関係のためです。これが、ほとんどの Linux GUIアプリが既にGTKアプリである理由であり、さらに進むべきコンテキストがなければ、新しいユーザーに「あなたも同じものを選んでもよい」と伝えるのが理にかなっています。しかし、それは本当に重要ではありません。
goldilocks

複数の異なるツールキットを使用するには、さらに多くのストレージが必要です。しかし、これがパフォーマンスに影響を与えるとは思わないが、他のもののためのスペースだけに影響する。
大名カービィ

19

いいえ、そのようなプログラムの内部構造に違いはありません。GTKとQtは、ユーザーインターフェイスツールキットとフレームワークです。開発者がグラフィカルインターフェイスを設計するために使用するライブラリです。

グラフィカル(GUI)プログラムが作成されると、最初にそのコア内部が開発されます。これがプログラムを実行させるものです。コアは表示されず、単にバックグラウンドで実行されます。このコアの上に、ユーザーインターフェイス(UI)が設計されています。

これで、開発者は完全なインターフェイスをゼロから設計したり、他のユーザーが作成した設計を再利用したりできます。デザインの再利用には大きな利点があります。コンピューター内のすべてのプログラムが同様に見えるようにします。したがって、GUIツールキットを使用します。GTKとQtは、非常に一般的な2つのGUIツールキットです。

GTKはGNOMEの標準ツールキットですが、QtはKDEで使用されます。ユーザーの観点からは、見た目だけが異なります。プログラムは基本的に同じままです。


4

考慮すべきもう1つの重要な側面は、ほとんどの非営利プロジェクトで自由に利用できるように明示的に設定されているライセンス開示へのQtライセンスリンクです。一方、GTKでは、プロプライエタリアプリケーションのGTKステートメントでも自由に使用できることを明示的に述べています。

Are there any licensing restrictions?
GTK is free software and part of the GNU Project. However, the licensing terms for GTK, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties. 

複雑なGUI開発の重要な側面は、設計キットとしてのGLADEと、それがあなたのアプローチのgladeリンクに適しているかどうかに依存します。クロスプラットフォームを目指していますが、Qtほど広くサポートされているクロスプラットフォームではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.