GTKとQTの違いは何ですか?


29

私はLinuxの初心者ですので、ご容赦ください。私は数年前からMac上のREALbasicでGUIプログラムを書いてきました。私はPythonを学ぼうとしていますが、Linux用のGUIアプリを作成したいです(主にUbuntuとMintは私がアクセスできるディストリビューションであり、最も人気があるようです)。基本的に3つの質問があります。

  1. GTKとQTの間に大きな違いはありますか
  2. 私はUbuntuを使っquicklyGlade、Ubuntu をいじくりましたが、それらはGTK 2に基づいており、これは現在廃止されていることを理解しています。あれは正しいですか?
  3. GUIを設計してからPythonコードを追加できるオールインワンエディターはありますか?(たとえば、エディターのウィンドウにボタンを追加し、ボタンをダブルクリックしてから、ボタンが押されたときに実行するPythonコードを追加します)

これらが本当に馬鹿げた質問である場合は申し訳ありませんが、最初から「正しい」ツールを学び始めたいと思います。


2
現在、あなたの質問に答える時間はありませんが、何か明確にすることができます。Gladeは、ライブラリ、UI定義ファイルの形式、およびそれらの.gladeファイルを作成するアプリケーションの両方でした。現在、Glade形式の使用目的にGtkBuilderを使用しています。これはGTKに組み込まれています。Gladeは、GtkBuilderの.uiファイルを作成する(または単に異なるレイアウトをテストする)ための優れたツールとして存続します。Glade3.xは確かにGtk3を実行します。
ディランマッコール

それはとても役に立ちます。GTKをツールキットとして使用することに決めた場合、PlahtonコードとUIデザインをリンクするためにGladeを使用してレイアウトと別のツールを設計します-正しいですか?
ヌートリノ

うん、そしてそのツールはGTKの一部であるので、ここで文書化されています:developer.gnome.org/gtk3/3.1/GtkBuilder.htmlそれはかなり詳細であり、PyGObjectを使用しているので、Cのドキュメントにリンクしています唯一の本当の違いは構文です。Pythonでは、名前と内容は次のようになります。valadoc.org
ディランマッコール

回答:


12

狂った方向に進むことなく、あなたの質問に答えようとします。

  1. どちらもウィジェットライブラリですが、大きく異なります。通常のGTK +はCに基づいており、QTはC ++に基づいています。ほとんどすべてのプログラミング言語にバインディングが存在しますが。

  2. GTK2アプリケーションは非常に多くありますが、GTK2についてはかなり正しいです。GTK1がそうだったように、GTK2がしばらく使用されていると思います。プッシュするようになると、GTK2は非推奨になり、新たに起動する場合はGTK3に移行します。

  3. Remeber GTKとQTは、単なるウィジェットツールキットです。たとえば... Gnomeアプリケーションでは、GTKとGnome-Libsも使用します。必要な場合は、valaをご覧ください。シンプルと見なされ、valaはソースからソースへ直接Cにコンパイルし、多くのプログラミング言語に完全にバインドします。また、Anjutaをご覧になることもできます。新しいgtk3バージョンがあることを確認してください。どうやら海峡PyGTKはGTK2のみをサポートしています。すべてのLinux DEライブラリを避けたい場合は、QTをご覧になることをお勧めします。プレーンQTは、KDEライブラリを含むKDEアプリケーションとは異なります。QTは非常にクロスプラットフォームであると見なされます。これは、* nix以外でコンパイルする場合に便利です。QT + Pythonを使い始めたい場合は、PySide(LGPL)またはPyQT(GPL)をご覧ください。QTには、qt creatorやqt-designerなどの優れたGUIビルダーがあります。


これをありがとう。アンジュタは私が望んでいたもののように見えます。少し遊んでみます。正しくない場合は、QTを調べます。GTKとQTの両方が同じ最終結果を達成することは私に印象的です-それは私が推測する好みの問題です。
ヌートリノ

Qtは単なるウィジェットツールキットではありません。これはフレームワーク全体であり、STLとBoostの大部分を複製します。
スコット

@scottl、私はQTを制限しようとしていませんでした。QTは単なるウィジェットよりも機能が優れていますが、そのコンテキストでは潜在的なソリューションの一部になりました。
JMベッカー

@Nootrino:FLOSSの世界では、多くの場合、複数の確立されたソリューションがあります。多くの人がどちらを選んだのかは、C対C ++の立場に基づいています。もちろん、過去にライセンスが大きな役割を果たしました。多くの言語の他のフレームワークが存在するにもかかわらず、通常、1つの方法により多く同意します。
JMベッカー

@Nootrino:実際に助けられてよかった!
JMベッカー

5

GTKとQtは、オープンソースのクロスプラットフォームユーザーインターフェイスツールキットおよび開発フレームワークです。これらはオープンソースであり、開発者にグラフィカルユーザーインターフェイスを設計するための強力なツールキットを提供するため、Linuxで使用されている最も人気のある2つのフレームワークです。GTKはGNOME、LXDE、およびXfceデスクトップ環境の標準ツールキットとして使用され、QtはKDEに使用されます。

Cでコーディングする場合は、明らかにGTK +を使用してください。

C ++でコーディングする場合はQtを使用し、そうでない場合はGtkmm(GTK +のC ++ラッパー)を作成します

Pythonでコーディングする場合、GTK +とQtの両方に言語のバインディングがあります。PyGtk、PyQt、PySide(Nokia自身が発売したものを参照)。


Pythonを使用している場合、PyGTKは非推奨です。新しいプロジェクトのために、あなたはより良いPyGObject(Ubuntuのリポジトリ内のpython-のGObject)を使用してオフになります:live.gnome.org/PyGObject PyGObjectはあなたが余分な層なし、Pythonの通過(例えばGTKなど)GLibの上に構築された任意のライブラリに接続することができます。PyGTKに非常によく似たものが得られますが、それについてはまったく異なります。そしてもちろん、PyGObjectはPythonを介してGTK3と通信する唯一の方法です。
ディランマッコール

-2

Qtは主にKDEで使用され、GTK +はGNOMEで使用されます。GNOME用に開発する場合は、GTK +を検討してください。GTK+ライブラリに必要な依存関係はGNOMEシステムに既にインストールされているはずです。エンドユーザーはそれらをインストールする必要はありません。GTK +開発には、Glade Interface Designerと呼ばれるツールも役立ちます。必要に応じて、それを使用してユーザーインターフェイスを作成できます。


5
QTはクロスプラットフォームツールキットであり、KDEで使用されるだけでなく、GTKでも使用されます。AND「TXTリクDIS」を足すからしてくださいリフレイン...
ウリエレーラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.