GTK+
正式名称:GIMP Tool Kit
最初はGIMPを実装するために開発されたウィジェットセットだったものに、拡張と改良を重ね汎用的なGUIツールキットとしたもの。
コアライブラリであるGLib、多言語処理ライブラリであるPango、アクセシビリティライブラリであるATKの3つのコンポーネントから構成される。UNIX/X11とWindowsで動作するマルチプラットフォームライブラリ。
GTK+はC言語ライブラリだが、他プログラミング言語も多くサポートされ、30近いプログラミング言語向けにライブラリが用意されている。
統合デスクトップ環境「GNOME」の基盤として使われている。
関連見出し
GUI
ライブラリ
GIMP
GNOME
Qt
関連URL
GTK+(http://www.gtk.org)

GTK (ツールキット)
![]() | |
![]() GTKバージョン4 (tk4-widget-factory) | |
作者 | スペンサー・キンボール、ピーター・マティス |
---|---|
開発元 | GNOMEプロジェクト、eXperimental Computing Facility |
初版 | 1998年4月14日 |
最新版 |
4.16.12[1] ![]() |
リポジトリ | |
プログラミング 言語 | C言語, CSS[2] |
対応OS | クロスプラットフォーム |
種別 | ウィジェット・ツールキット |
ライセンス | LGPLv2 |
公式サイト |
gtk |
GTK (以前は GTK+[3]、またはGIMP Toolkit[4]) は、グラフィカルユーザインタフェース (GUI) を作るためのクロスプラットフォームのウィジェット・ツールキットである[5]。WaylandおよびX Window System向けの最も人気のあるツールキットの1つである[6]。
オープンソースな自由ソフトウェアであり、GNU LGPLでライセンスされているため、自由ソフトウェアとプロプライエタリソフトウェアの両方で使用できる。
GTKチームは定期的に新しいバージョンをリリースしている[7]。GTK 4とGTK 3はメンテナンスされているが、GTK 2はサポートが終了している[8]。GTK 1はCinePaintプロジェクトによって独立してメンテナンスされている[9]。
ソフトウェアアーキテクチャ



GTKライブラリには、グラフィカルコントロール要素(ウィジェット)のセットが含まれている。バージョン3.22.16には、186個のアクティブなウィジェットと36個の非推奨のウィジェットが含まれている[10]。GTKは、C言語で書かれたオブジェクト指向のウィジェットツールキットであり、GObject(GLibオブジェクトシステム)を使用している。GTKは主にX11やWaylandで使用されるが、Microsoft Windows(Windows APIを使用)やmacOS(Quartzを使用)など、他のプラットフォームでも動作する。BroadwayというHTML5バックエンドも存在する[11][12]。
GTKは、描画されるウィジェットの外観を変更するように設定できる。これは、さまざまな表示エンジンを利用して行われる。使用中のプラットフォーム上のネイティブウィジェットの外観をエミュレートしようとする表示エンジンもいくつか存在する。
2005年にリリースされたバージョン2.8以降、GTKはグラフィカルコントロール要素ウィジェットのほとんどをCairoを使用してレンダリングするようになった[13]。GTKバージョン3.0以降、すべてのレンダリングはCairoを使用して行われる[14] 。
2018年1月26日、DevConf.czで、マティアス・クラセン(Matthias Clasen)はGTK 4開発の現状について概要を説明し、GTK 3でのレンダリングと入力の仕組み、GTK 4(> 3.90)での変更点とその理由について詳細に説明した[15]。2019年2月6日、GTK 4ではプロジェクト名から「+」が削除されることが発表された[16]。
GTK Drawing Kit (GDK)
GDKは、基盤となるウィンドウシステムおよびグラフィックスシステムによって提供される低レベル関数のラッパーとして機能する。
GTK Scene Graph Kit (GSK)
GSKは、GTKのレンダリングおよびシーングラフAPIである。GSKは、グラフィカルコントロール要素(ウィジェット)とレンダリングの間に位置する。GSKは、最終的に2017年3月にリリースされたGTKバージョン3.90に統合された。
GtkBuilder
GtkBuilderを使用すると、コードを記述せずにユーザインターフェイスを設計できる。インターフェイスは、手動、またはGUIデザイナーによって生成されるExtensible Markup Language(XML)ファイルで記述され、実行時に読み込まれ、オブジェクトが自動的に作成される。ユーザインターフェイスの記述は、使用されているプログラミング言語に依存しない。
言語バインディング
C++、Genie、JavaScript、Perl、Python、Valaなど、C以外の言語からGTKを使用するための言語バインディングが利用可能である。
バックエンド
GTKはさまざまなバックエンドをサポートしており、システムや環境に応じてGTKアプリケーションを表示するさまざまな方法を提供する。GTKバックエンドの例は次の通りである。
- Wayland – Linuxシステムで使用される、X11のモダンな代替。
- X11 – X.Orgディスプレイサーバーを使用するLinuxシステムのデフォルト。
- Win32 – WindowsでGTKアプリケーションを実行することができる。
- Quartz – macOSのサポート。
- Broadway – HTML5とWebSocketを使用して、WebブラウザーでGTKアプリケーションを実行できる[11][12]。
開発ツール
GUIデザイナ

GTKには複数のGUIデザイナが存在する。以下にGTK GUIデザイナの一部を紹介する。
- Cambalache – Gladeの後継で、GTK 4をサポートしている[17]。
- Glade – GTK組み込みのGUI記述形式であるGtkBuilderをサポートしている(現在、アクティブにメンテナンスされていない)。
- Gazpacho – Pythonで書かれたGTKツールキット用のGUIビルダー[18]。
- Crow Designer – 独自のGuiXml形式とGuiLoaderライブラリを使用している[19]。
- Stetic – MonoDevelopの一部で、Gtk#向けである。
- Gambas(バージョン2.0以降、BASICベース)
- Xojo
- Lazarus(LinuxではデフォルトでGTK 2とのインターフェイスとなる)
GTKインスペクタ

GTKインスペクタはGTKに組み込まれたインタラクティブなデバッグツールであり、UI要素の検査と変更、CSSの変更のテスト、ウィジェット構造のリアルタイム分析を行うことができる。Control + Shift + I
またはControl + Shift + D
のショートカットを使用するか、GTK_DEBUG=interactive
環境変数を設定することで有効にできる[20]。GTKバージョン3.14で導入された[21][22]。
機能
- インタラクティブなデバッグ
- リアルタイムのCSSテストと変更
- 詳細な検査のためのウィジェットの拡大
- UI構造の分析とオブジェクトプロパティの検査
- 環境変数によるカスタマイズ可能な表示設定
- 詳細なオブジェクト検査(タイプ、状態、プロパティ、CSS、アクションなど)
- グローバルアプリケーション情報の表示
- CSSルールのデバッグ
- レンダリングパイプラインの記録と検査
開発
GTKは主にGNOMEプロジェクトによって開発されている。GNOMEプロジェクトはGNOME開発プラットフォームとGNOMEデスクトップ環境も開発している[23]。GTKは主にC言語で書かれており[24]、多くの言語バインディングが利用可能である。GTKの開発は緩く管理されている。
GNOMEの開発者とユーザーは、毎年開催されるGNOMEユーザーと開発者のヨーロッパ会議GUADECミーティングに集まり、GNOMEの現状と将来の方向性について議論する[25]。GNOMEは、他のデスクトップとの相互運用性を高めるために、freedesktop.orgの標準とプログラムを取り入れている[要出典]。
2016年9月1日、GTK開発ブログの投稿で、GTKの将来の番号付けスキームなどが示された[26]。2016年秋にリリースされたGTKバージョン3.22は、3.x系の最後のリリースとなる予定だったが、2018年秋にはGTK 4の遅れによりバージョン3.24が続いた[27]。GTK 4の開発では、2020年12月に最初のGTK 4.0安定リリースが開始されるまで、バージョン名3.90、3.92などが使用されていた[28]。最初の安定したGTK 4リリースにもかかわらず、GTKを使用する一部のアプリケーションは依然としてGTK 2に依存している。たとえば、2022年1月現在、GIMPはまだGTK 3に移植されていない[29]。
ビルド自動化
GTKのマスターブランチはビルド自動化にMesonを利用している。GTK(およびGNOME、GLibなど)は、以前はビルド自動化システムとしてGNU Build System(Autotools)を利用していた。2017年8月14日以降、Autotoolsビルドシステムファイルは削除された[30]。
批判
GTKに対する最も一般的な批判は、主要なアップデートにおける下位互換性の欠如であり、特にAPIとテーマにおいてそれが顕著である[31][32]。その結果、アプリケーション開発者やテーマ開発者は、GTKの新しいバージョンで動作するようにコードを書き直す必要がある。
GTK 3.xの開発サイクル中にマイナーリリース間で互換性が途切れたのは、現代のユーザーが期待する機能の提供や、影響力が増しているWaylandのサポートなど、革新への強いプレッシャーが原因であるとBenjamin Otteは説明した。GTK 4のリリースにより、革新の必要性によるプレッシャーは解消され、安定性と革新のバランスはより安定することになる[33]。同様に、テーマに対する最近の変更は、APIのその部分を改善し安定化させることを特に意図している。
- Aurélien GâteauはGwenviewをGTKアプリケーションとして開始したが、開発の初期段階でQtに切り替えた[34]。
- Subsurfaceの共同開発者であり、IntelのオープンソーステクノロジーセンターのメンバーでもあるDirk Hohndelは、GTK開発者が攻撃的でコミュニティの要求のほとんどを無視していると批判した[35]。
- LXDE(GTKバージョンは廃止され、すべての取り組みはQtへの移植に集中)の開発者であるHong Jen Yeeは、GTKツールキットのバージョン3の根本的なAPI変更とメモリ使用量の増加を軽蔑し、PCManFMをQtに移植した。PCManFMは、GTKとQtの両方で同時に開発されている[36]。
- Audaciousミュージックプレーヤーはバージョン3.6でQtに移行した[37]。開発者らが述べた理由には、クライアント側のウィンドウ装飾への移行が含まれ、これによりアプリケーションが「GNOME風で場違い」に見えるようになったと彼らは主張している[38]。
- Wiresharkは、GTKのクロスプラットフォームサポートで良い経験がなかったため、Qtに切り替えた[39]。
使用例


GTKをウィジェットツールキットとして使用するアプリケーションには、以下のものがある。
- Ardour - デジタルオーディオワークステーション(DAW)
- Deluge - BitTorrentクライアント
- Foliate - 電子書籍リーダー
- GIMP - ラスターグラフィックエディタ
- GNOME Core Applications - GNOMEデスクトップ環境の標準バンドルとして提供されるアプリケーションの集合
- GNOME Circle - GNOMEエコシステム内で動作するように作成されたアプリケーションの集合
- GNOME Evolution - 個人情報管理ソフトウェア
- HandBrake - デジタルビデオトランスコーダ
- Inkscape - ベクターグラフィックエディタ
- LibreOffice - オフィススイート
- Lutris - ゲームマネージャ
- Mozilla Firefox - ウェブブラウザ
- Mozilla Thunderbird - 個人情報管理ソフトウェア
- Pitivi - 動画編集ソフトウェア
- PCSX-Reloaded - ゲームエミュレータ
- REAPER - デジタルオーディオワークステーション(DAW)
- Remmina - リモートデスクトップクライアント
- Transmission - BitTorrentクライアント
GTKプログラムは、必要なライブラリがインストールされていれば、X11とWaylandをベースにしたデスクトップ環境や、GTKで作成されていない他のデスクトップ環境でも実行できる。これには、X11.appがインストールされていればmacOSも含まれる。GTKはMicrosoft Windowsでも実行でき、PidginやGIMPなどの人気のあるクロスプラットフォームアプリケーションで使用されている。クロスプラットフォームGUIツールキットであるwxWidgetsは、LinuxでデフォルトでGTKを使用する[40]。他のポートにはDirectFB(例えばDebianインストーラで使用)がある。
デスクトップ環境
いくつかのデスクトップ環境はウィジェット・ツールキットとしてGTKを使用している。
開発中
- GNOME - GTKをベースとしており、GNOMEネイティブのプログラムはGTKを使用する。
- Budgie - Solus OSの後継であるSolusオペレーティングシステム用にゼロから構築された。
- Cinnamon - GNOME 3のフォークで、GTKバージョン3を使用する。
- MATE - GNOME 2のフォークで、バージョン1.18以降はGTK 3を使用する。
- Xfce - バージョン4.14以降はGTK 3ベース。
- Pantheon - elementary OSによって開発されており、GTK 3のみを使用する。
- Sugar - 青少年初等教育用のデスクトップ環境で、GTK、特にPyGTKを使用する。
- Phosh - PureOS用に設計されたモバイルUI。
- LXDE(軽量X11デスクトップ環境) - GTK 2をベースとしている。
- Unity - Ubuntuの以前のデフォルトのデスクトップ環境。
非アクティブ
- Access Linux Platform - Palm OS PDAプラットフォームの後継。
- Consort - GNOME 3.4フォールバックモードのSolusからのフォーク。
- GPE
- ROX Desktop - RISC OSのGUIの機能を備えた軽量デスクトップ。
ウィンドウマネージャ
次のウィンドウマネージャはGTKを使用している。
GtkSourceView
シンタックスハイライトにはGtkSourceView(ソースコード編集ウィジェット)が利用できる。GtkSourceView は、GTK とは別に GNOME によってライブラリ gtksourceview として管理されている。gsv への名称変更が計画されている[要出典]。
GtkSpell
GtkSpell は GTK とは別のライブラリである。GtkSpell は GTK と Enchant に依存している。Enchant は実際のスペルチェッカーエンジンやソフトウェアである ispell、Hunspell などのラッパーである。GtkSpell は GTK の GtkTextView ウィジェットを使用してスペルミスのある単語を強調表示し、置換を提案する。
歴史
Linux/Unix
GTKは当初、Motifの代替としてGIMPのために設計され、用いられた。ピーター・マティスはMotifに失望し、彼自身のGUIツールキット、GIMP toolkitが書かれた。これはGIMP 0.60のリリースでMotifを置き換えることに成功した[41]。最終的にGTKは書き直され、オブジェクト指向となり、GTK+に名前が変更された[42]。これはGIMPの0.99リリースで最初に使われた。GTKはその後、GNOME Foundationによってメンテナンス対応がなされGNOMEデスクトップ環境で使われるようになった。
GTK 2
GTK 2.0.0リリース(2002年[43])シリーズでは、Pangoを使用したテキストレンダリングの改善、新しいテーマエンジン、アクセシビリティ・ツールキットを使用したアクセシビリティの改善、UTF-8文字列を使用したUnicodeへの移行、より柔軟なAPIなどの新機能が導入された。バージョン2.8から、GTK 2はベクターグラフィックスの描画のためのライブラリとしてCairoに依存するようになっている。
GTK 3
GTKバージョン3.0.0(2011年[44])には、入力デバイス処理の改良、CSSのような構文で書かれたテーマのサポート、開いている他のGTKアプリケーションに関する情報を受け取る機能が含まれていた。
2019年2月のハッカソン中に「+」が削除され、名前が「GTK」に戻った[45]。
OpenVMS
HPは、必要なOpenVMSの変更をGTKバージョン1.3の開発ストリームに統合することを目標としていたが、これは実現しなかった[46]。OpenVMS用のGTKの最新バージョンはバージョン1.2.10である[47]。
GTK 4
GTK 4 開発サイクル(GTK 3.92 など)中に行われた主な変更の1つは、ユーザーカスタマイズオプション(GTK+ 2で設定可能な個別のキーボードショートカットなど)の削除と、GTKが提供する基本クラスに機能をエンコードするのではなく、補助オブジェクトに機能を委任したことである。その他の変更には次のものがある。
- GtkWidgetによって記述されたシグナルハンドラーからのイベント処理は、イベントコントローラーに委任される。
- レンダリングは、GtkSnapshotオブジェクトに委任される。
- レイアウトメカニズムは、GtkWidgetからGtkLayoutManagerに委任される。
2018年のDevConf.czで、マティアス・クラセン(Matthias Clasen)は当時のGTK 4開発の現状について概要を説明し、GTK 3でのレンダリングと入力の仕組み、GTK 4でどのような変更が行われたか、その変更の理由などについて詳細に説明した。GTK 4で可能になったことの例も示された[48]。
関連項目
脚注
- ^ "4.16.12"; 閲覧日: 2025年1月4日; 出版日: 2025年1月3日.
- ^ “The GTK Open Source Project on Open Hub: Languages Page”. www.openhub.net. March 28, 2019時点のオリジナルよりアーカイブ。March 28, 2019閲覧。
- ^ Bassi, Emmanuele (2019年2月6日). “Project rename to "GTK"”. mail.gnome.org. GNOME mailinglist. November 7, 2020時点のオリジナルよりアーカイブ。2019年2月7日閲覧。
- ^ “A brief description on how GTK was born.”. www.gtk.org. June 9, 2023時点のオリジナルよりアーカイブ。July 5, 2023閲覧。
- ^ The GTK+ Team. “GTK+ Features”. May 25, 2019時点のオリジナルよりアーカイブ。September 8, 2014閲覧。
- ^ “Documentation”. www.x.org. December 21, 2019時点のオリジナルよりアーカイブ。November 22, 2019閲覧。
- ^ “Projects/GTK/Roadmap - GNOME Wiki!”. wiki.gnome.org. May 22, 2019時点のオリジナルよりアーカイブ。November 22, 2019閲覧。
- ^ “GTK 4.0 – GTK Development Blog” (英語) (December 16, 2020). May 28, 2023時点のオリジナルよりアーカイブ。2021年10月18日閲覧。
- ^ “Robin Rowe / GTK1 · GitLab”. GitLab. March 9, 2023時点のオリジナルよりアーカイブ。February 22, 2023閲覧。
- ^ “GTK+ 3 Reference Manual”. June 23, 2021時点のオリジナルよりアーカイブ。2017年7月15日閲覧。
- ^ a b “Using GTK+ with Broadway”. GNOME Developer. GNOME. June 14, 2021時点のオリジナルよりアーカイブ。March 6, 2018閲覧。
- ^ a b “Broadway - GitHub symbiose/symbiose Wiki”. GitHub. June 28, 2023時点のオリジナルよりアーカイブ。March 6, 2018閲覧。
- ^ “GTK+ to Use Cairo Vector Engine” (February 5, 2005). 2009年12月27日閲覧。
- ^ “Gtk: Migrating from GTK 2.x to GTK 3” (英語). docs.gtk.org. May 26, 2023時点のオリジナルよりアーカイブ。2022年6月16日閲覧。 “All drawing in GTK 3 is done via Cairo.”
- ^ “GTK+ to Use Cairo Vector Engine” (February 5, 2005). 2009年12月27日閲覧。
- ^ “Gtk: Migrating from GTK 2.x to GTK 3” (英語). docs.gtk.org. May 26, 2023時点のオリジナルよりアーカイブ。2022年6月16日閲覧。 “All drawing in GTK 3 is done via Cairo.”
- ^ “glade - man pages section 1: User Commands”. docs.oracle.com. 2024年9月11日閲覧。
- ^ “Debian -- Package Search Results -- gazpacho”. packages.debian.org. June 28, 2023時点のオリジナルよりアーカイブ。November 22, 2019閲覧。
- ^ “Nothing-personal - A development site for Crow Designer, GuiLoader and Rally - Google Project Hosting”. 2013年1月24日時点のオリジナルよりアーカイブ。2014年2月17日閲覧。
- ^ “GTK Inspector” (英語). GNOME Developer Documentation. 2024年9月14日閲覧。
- ^ “Introducing GtkInspector” (2014年5月15日). May 17, 2014時点のオリジナルよりアーカイブ。May 17, 2014閲覧。
- ^ “Another GtkInspector update” (2014年7月11日). July 14, 2014時点のオリジナルよりアーカイブ。July 13, 2014閲覧。
- ^ “GNOME Quick SWOT Analysis”. The GNOME Project. March 18, 2014時点のオリジナルよりアーカイブ。March 18, 2014閲覧。
- ^ “GNOME Languages”. Ohloh. Black Duck Software. May 22, 2014時点のオリジナルよりアーカイブ。May 22, 2014閲覧。
- ^ “About”. GNOME Users And Developers European Conference (GUADEC). October 4, 2011時点のオリジナルよりアーカイブ。December 3, 2011閲覧。
- ^ “Versioning and long term stability promise in GTK”. GTK development blog (2016年9月1日). September 21, 2016時点のオリジナルよりアーカイブ。September 2, 2016閲覧。
- ^ “GTK+ 3.24 To Deliver Some New Features While Waiting For GTK4”. www.phoronix.com. April 22, 2024時点のオリジナルよりアーカイブ。April 2, 2021閲覧。
- ^ “GTK 4.0”. GTK development blog (2020年12月16日). May 28, 2023時点のオリジナルよりアーカイブ。October 18, 2021閲覧。
- ^ “Development release GIMP 2.99.2 is out”. Gimp news. (2020年11月6日). オリジナルのApril 10, 2021時点におけるアーカイブ。 January 6, 2022閲覧。
- ^ “Build system change GTK's master branch”. mail.gnome.org. August 15, 2017時点のオリジナルよりアーカイブ。October 29, 2018閲覧。
- ^ “How Does One Create A Gtk+ Application? – Morten Welinder”. blogs.gnome.org (June 23, 2014). July 1, 2014時点のオリジナルよりアーカイブ。June 3, 2017閲覧。
- ^ mclasen (November 20, 2015). “A GTK+ update”. Goings on. May 2, 2016時点のオリジナルよりアーカイブ。June 3, 2016閲覧。
- ^ “GUADEC2013: Benjamin Otte talks about GTK+”. GUADEC. March 6, 2014時点のオリジナルよりアーカイブ。March 5, 2014閲覧。
- ^ Aurélien Gâteau (2021年10月3日). “The story behind Gwenview name”. agateau.com. 2024年4月22日時点のオリジナルよりアーカイブ。2024年12月15日閲覧。 “Yes, you read this right! Gwenview started its life as a GTK+ application!”
- ^ Larabel, Michael (2014年1月12日). “The Biggest Problem With GTK & What Qt Does Good”. Phoronix. July 1, 2016時点のオリジナルよりアーカイブ。2014年9月10日閲覧。
- ^ Hong Jen Yee (2013年3月26日). “PCManFM Qt 0.1.0 released”. June 7, 2013時点のオリジナルよりアーカイブ。2014年9月10日閲覧。
- ^ “Audacious - An Advanced Audio Player”. audacious-media-player.org. July 28, 2019時点のオリジナルよりアーカイブ。November 22, 2019閲覧。
- ^ Lindgren, John (2014年5月6日). “Ugly window decorations and how to fix them (GTK 3.12)”. October 13, 2014時点のオリジナルよりアーカイブ。2014年10月21日閲覧。
- ^ Gerald Combs (2013年10月15日). “We're switching to Qt”. October 19, 2013時点のオリジナルよりアーカイブ。2015年8月19日閲覧。
- ^ “GTK+”. WxWidgets Compared To Other Toolkits. October 5, 2007時点のオリジナルよりアーカイブ。August 28, 2007閲覧。
- ^ “LinuxWorld - Where did Spencer Kimball and Peter Mattis go?”. April 17, 1999時点のオリジナルよりアーカイブ。2013年8月19日閲覧。
- ^ “What is the + in GTK+?” (2011年). 2012年3月26日時点のオリジナルよりアーカイブ。2014年3月18日閲覧。
- ^ https://mail.gnome.org/archives/gtk-devel-list/2002-March/msg00161.html
- ^ https://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00020.html
- ^ “Rename some references to GTK+ (d080be3e) · Commits · GNOME / gtk”. gitlab.gnome.org (February 4, 2019). February 25, 2021時点のオリジナルよりアーカイブ。February 5, 2019閲覧。
- ^ “HP OpenVMS systems - GTK+”. July 13, 2018時点のオリジナルよりアーカイブ。July 12, 2018閲覧。
- ^ “HP OpenVMS systems - GTK+”. July 13, 2018時点のオリジナルよりアーカイブ。July 12, 2018閲覧。
- ^ “GTK+ 4 Status Update”. Fedora People. April 22, 2024時点のオリジナルよりアーカイブ。April 22, 2024閲覧。
外部リンク
- The GTK Project - A free and open-source cross-platform widget toolkit 公式ウェブサイト
- GNOME – Simple, beautiful, elegant. GNOMEオフィシャルサイト
- 日本GNOMEユーザー会 / Japan GNOME Users Group(APIリファレンス・チュートリアル等の日本語訳)
GTK+
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/06/09 07:35 UTC 版)
ナビゲーションに移動 検索に移動![]() |
![]() | |
開発元 | GNOME Foundation |
---|---|
初版 | 1998年4月14日 |
最新版 | 3.24.8 / 2019年4月10日 |
最新評価版 | 3.94 / 2018年6月28日 |
リポジトリ |
gitlab |
対応OS | クロスプラットフォーム |
種別 | ウィジェット・ツールキット |
ライセンス | LGPL |
公式サイト | www.gtk.org |

GTK+ (The GIMP Toolkit) は、クロスプラットフォームのウィジェット・ツールキット(GUIツールキット)である。当初は、GIMPの実装のために開発され、現在は、GNOMEデスクトップ環境のツールキット等として広く利用されている。
GTK+はGNUプロジェクトの一部であり、GNU LGPLの元で開発されているオープンソースなフリーソフトウェアである。
GTK+アプリケーションは、GNOMEに限らずKDEなどのGTK+ベースでないデスクトップ環境でも動作する。GNOMEライブラリを使用することにより、GNOMEデスクトップ環境のさまざまな機能を使用したアプリケーションを開発することができるが、GTK+だけでアプリケーションを構成することも可能。
GTK+は、主にFreeBSDやLinuxディストリビューションといったオープンソースのOS向けのソフトウェアに多く利用されているが、WindowsやmacOSにも移植されている。
2019年、「GTK」に改名することが決まった[1]。
目次
プログラミング言語
Qtと違ってGTK+はC言語を使うが、オブジェクト指向のパラダイムで普通デザインする。また、公式にC++ (gtkmm)、Perl (gtk2-perl)、Python (PyGTK)、C#(Gtk#)、Java (Java-GNOME)、JavaScript、Vala、非公式にFortran (gtk-fortran)、Ruby (Ruby/Gtk2)、PHP (PHP-GTK)、Pascal、Lua、Haskell、FreeBASICといった言語でもバインディングを用いることにより開発が可能である[2]。
テーマ(ルックアンドフィール)
ユーザーがGTK+の見た目を変えられる。これはテーマエンジンを切り替えることで実現されていて、多くのテーマが提供されている[3]。これらのテーマの中にはmacOSのAquaやWindowsやMotifやQt等の他の有名なツールキットやプラットホームをまねた見た目を提供するのもある。
GTK+2
GTK+2とはGTK+1の次のバージョンのGTKとして開発されたツールキットである。Pangoによる多言語テキスト出力、新テーマエンジン、Accessibility Toolkit(ATK)によるアクセシビリティサポートの向上、UTF-8によるUnicode環境への移行などがされている。GTK+2はGTK+1と互換性がないので、GTK+1用のプログラムをGTK+2環境で動かすにはGTK+2用にソースコード等を修正する必要がある。いくつかのアプリケーションは軽量さや組み込みアプリケーションに適しているなどの理由からオリジナルバージョンを使いつづけGTK+1のままで使われているのもある。
インプットメソッドが必要な日本語などの言語のためにimmoduleというプラグインスタイルのフレームワークが用意されており、XIMやIIIMFを利用するための仕組みも、それぞれこのimmoduleの1つとして実装されている。
GTK+2を利用したソフトウェア
- GIMP
- Inkscape
- Mozilla Firefox
- Mozilla Thunderbird
- Sylpheed (メールソフト)
- Web (ウェブブラウザ)
- 風博士 (ウェブブラウザ)
- mikutter (Twitterクライアント)
- 各種GNOME 2アプリケーション - GNOME環境はGTK+をベースにしており、GNOMEアプリケーションはツールキットとしてGTK+を使用している。
GTK+2 immodule のさまざまな実装
- im-canna - かんなのimmodule
- im-freewnn - FreeWnnのimmodule
- im-perl - Perlで入力メソッドを記述するためのimmodule
- im-euro - 'euro'をユーロ記号に変換して、欧米人に入力メソッドをわかりやすく説明するためのimmodule
- im-ja - im-cannaベースに、手書き入力などさまざまな日本語入力に対応
- im-ime - Windows専用のimmodule。Windows上のIMEでのインライン日本語入力に対応
- im-xim - XIMのimmodule
- im-iiim - IIIMFのimmodule
- im-uim - uimのimmodule
関連項目
参照
外部リンク
- GTK+オフィシャルサイト
- GNOMEオフィシャルサイト
- 日本GNOMEユーザ会(APIリファレンス・チュートリアル等の日本語訳)
|
|
Gtk
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/04/04 15:21 UTC 版)
GTK
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/12/04 14:20 UTC 版)
「クライアントサイド・デコレーション」の記事における「GTK」の解説
GTKは、GtkHeaderBarウィジェットにより、Linuxで最初にクライアントサイド・デコレーションを実装したGUIツールキットである。 GtkHeaderBarでは、より多くの領域をアプリケーション本体に割り当て、無駄な空白部分の面積をできる限り削減するために、タイトルバー、メニューバー、ツールバーを統合して単一の水平のバーとして描画する。これにより、アプリケーションから伝統的なデスクトップでの使用を前提としていた箇所が削除され、デスクトップPCからスモールフォームファクタ機器まで、様々なフォームファクタを通じたUIの柔軟性やUXの一貫性の確保に貢献する。これらはGNOME Shellで最優先にサポートされるほか、GNOME applicationsでも幅広く使用されている。
※この「GTK」の解説は、「クライアントサイド・デコレーション」の解説の一部です。
「GTK」を含む「クライアントサイド・デコレーション」の記事については、「クライアントサイド・デコレーション」の概要を参照ください。
固有名詞の分類
- GTKのページへのリンク