GTK (ツールキット)

GTK

開発元|  GNOME Foundation
初版|  1998年4月14日 (26年前) (1998-04-14)
最新版|  4.16.7[1] \- 2024年11月24日 (11日前) [±]
リポジトリ|

* gitlab.gnome.org/GNOME/gtk

対応OS|  クロスプラットフォーム
種別|  ウィジェット・ツールキット
ライセンス|  LGPL
公式サイト|  gtk.org
テンプレートを表示
GTK usage in Linux-based systems, e.g. with Wayland

GTK (以前は GTK+[2], 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」に改名することが決まった[3]。

## プログラミング言語

[編集]

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といった言語でもバインディングを用いることにより開発が可能である[4]。

## テーマ（ルックアンドフィール）

[編集]

ユーザーがGTKの見た目を変えられる。これはテーマエンジンを切り替えることで実現されていて、多くのテーマが提供されている[5]。

これらのテーマの中にはmacOSのAquaやWindowsやMotifやQt等の他の有名なツールキットやプラットホームをまねた見た目を提供するのもある。

## 歴史

[編集]

### Linux/Unix

[編集]

GTKは当初、Motifの代替として、GIMPのために設計され、用いられた。Peter MattisはMotifに失望し、彼自身のGUIツールキット、GIMP toolkitが書かれた。これはGIMP 0.60のリリースでMotifを置き換えることに成功した[6]。最終的にGTKは書き直され、オブジェクト指向となり、GTK+に名前が変更された[7]。これはGIMPの0.99リリースで最初に使われた。GTKはその後、GNOME Foundationによってメンテナンス対応がなされGNOMEデスクトップ環境で使われるようになった。

GTK 2.0.0リリースシリーズは、Pangoを使った改善されたテキストのレンダリング新しいテーマエンジンやさらに柔軟なAPIなどを含んでいた。バージョン2.8から、GTK 2はベクターグラフィックスの描画のためのライブラリとしてCairoに依存するようになっている。

GTK 3.0.0は、修正されたインプットデバイスの取り扱いや、CSSのような構文で書かれたテーマのサポート、他の開かれているGTKアプリケーションからの情報受け取り機能などを含んでいる。

### macOS

[編集]

macOSでは、Quartzバックエンド[8]のGTKを利用することができる。

### Windows

[編集]

* GTK 2.24.10と3.6.4のあと、インストーラー付きのWindows向け開発はGNOMEによって中止された。Windows上のMSYS2をインストールするのが、実際にGTKを使うためにはよい手段である[9]。
* GTK 2.24.10と3.6.4はインターネット上で利用可能だが、バグが多く実際のバージョンよりも限られたものとなっている[10]。
* 64ビット版Windows向けのバージョンはTom Schoonjansによって準備され、2.24.32と3.22.30を利用することができる[11]。

## GTK2

[編集]

GTK2とはGTK1の次のバージョンのGTKとして開発されたツールキットである。Pangoによる多言語テキスト出力、新テーマエンジン、Accessibility Toolkit（英語版）(ATK)によるアクセシビリティサポートの向上、UTF-8によるUnicode環境への移行などがされている。GTK2はGTK1と互換性がないので、GTK1用のプログラムをGTK2環境で動かすにはGTK2用にソースコード等を修正する必要がある。いくつかのアプリケーションは軽量さや組み込みアプリケーションに適しているなどの理由からオリジナルバージョンを使いつづけGTK1のままで使われているのもある。

インプットメソッドが必要な日本語などの言語のためにimmoduleというプラグインスタイルのフレームワークが用意されており、XIMやIIIMFを利用するための仕組みも、それぞれこのimmoduleの1つとして実装されている。

### GTK2を利用したソフトウェア

[編集]

Xfce4上で動作しているGIMP 2.0

* GIMP
* Inkscape
* Mozilla Firefox
* Mozilla Thunderbird
* Sylpheed (メールソフト)
* Web (ウェブブラウザ)
* 風博士 (ウェブブラウザ)
* mikutter (Twitterクライアント)
* 各種GNOME 2アプリケーション - GNOME環境はGTKをベースにしており、GNOMEアプリケーションはツールキットとしてGTKを使用している。

### GTK2 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

## 出典

[編集]

1. ^ "4.16.7"; 閲覧日: 2024年11月24日; 出版日: 2024年11月24日.
2. ^ Bassi, Emmanuele (2019年2月6日). “Project rename to "GTK"”. mail.gnome.org. GNOME mailinglist. 2019年2月7日閲覧。
3. ^ GTK+ renamed to GTK
4. ^ Language Bindings
5. ^ GNOME ART
6. ^ “LinuxWorld - Where did Spencer Kimball and Peter Mattis go?”. April 17, 1999時点のオリジナルよりアーカイブ。2013年8月19日閲覧。
7. ^ “What is the + in GTK+?” (2011年). 2012年3月26日時点のオリジナルよりアーカイブ。2014年3月18日閲覧。
8. ^ Projects/GTK/OSX
9. ^ GTK Download: Windows
10. ^ GTK+ for Windows Runtime Environment
11. ^ GTK+ for Windows Runtime Environment Installer (fork from http://gtk-win.sourceforge.net): tschoonj/GTK-for-Windows-Runtime-Environment-Installer

## 関連項目

[編集]

ポータル FLOSS

* ウィジェット・ツールキット
* GLib
* FLTK
* Gtk#
* GTK-Qt
* gtkmm

## 外部リンク

[編集]

* The GTK Project - A free and open-source cross-platform widget toolkit 公式ウェブサイト
* GNOME – Simple, beautiful, elegant. GNOMEオフィシャルサイト
* 日本ＧＮＯＭＥユーザー会 / Japan GNOME Users Group(APIリファレンス・チュートリアル等の日本語訳)

この項目は、FLOSSに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています（Portal:FLOSS）。

|

* 表示
* 編集

* 表
* 話
* 編
* 歴

ウィジェット・ツールキット

低レベル|

* Macintosh Toolbox（英語版）/Carbon (API)
* Intrinsics
* Intuition（英語版）
* Windows API
* Xlib
* XCB

高レベル|

| AmigaOS対応|

* BOOPSI（英語版）
* Magic User Interface（英語版）
* ReAction GUI（英語版）
* Zune（英語版）

|

Mac OS/macOS対応|

* Cocoa (API)
* MacApp（英語版）
* MacZoop（英語版）
* PowerPlant（英語版）

Windows対応|

* Microsoft Foundation Class Library
* Object Windows Library（英語版）
* Silverlight
* SmartWin++（英語版）
* Visual Component Library
* Windows Forms
* Windows Presentation Foundation
* Windows Template Library
* WinRT XAML（英語版）

X11下のUnix対応|

* Athena/Xaw（英語版）
* InterViews（英語版）
* LessTif
* Motif

言語別
クロスプラットフォーム|

| CLI|

* Avalonia UI（英語版）
* Uno Platform（英語版）
* Gtk#
* Moonlight（英語版）
* Tao（英語版）

|

C/C++|

* CEGUI（英語版）
* Component Library for Cross Platform
* FLTK
* FOX toolkit（英語版）
* OpenGL User Interface Library（英語版）
* GTK
* Juce（英語版）
* Qt
* Wt（英語版）
* Tk
* TnFOX（英語版）
* Ultimate++（英語版）
* Visual Component Framework（英語版）
* wxWidgets
* YAAF（英語版）
* XForms
* XVT（英語版）

Objective-C|

* GNUstep

Flash|

* Apache Flex

Java|

| デスクトップ|

* Abstract Window Toolkit
* Swing
* Standard Widget Toolkit
* Qt Jambi（英語版）

|

ウェブ|

* Google Web Toolkit

JavaScript|

* Dojo Toolkit
* Echo（英語版）
* Ext JS
* Google Closure Tools
* jQuery
* jQuery UI
* MooTools
* Qooxdoo（英語版）
* script.aculo.us（英語版）
* YUI（英語版）

Common Lisp|

* CAPI
* Common Graphics
* CLIM（英語版）
* Ltk
* McCLIM（英語版）

Object Pascal|

* Component Library for Cross Platform
* fpGUI（英語版）
* IP Pascal（英語版）
* Lazarus

Perl|

* WxPerl（英語版）
* Perl/Tk

PHP|

* PHP-GTK（英語版）
* PHP-Qt（英語版）
* WxPHP（英語版）

Python|

* Pyjamas（英語版）
* PyQt
* PyGTK
* PyGObject（英語版）
* PySide
* Tkinter
* wxPython

Ruby|

* Shoes
* QtRuby（英語版）

XML|

* Ample SDK（英語版）
* CougarXML（英語版）
* GladeXML
* Lively Kernel（英語版）
* Pyjamas（英語版）
* Rialto Toolkit（英語版）
* XAML
* XML User Interface（英語版）
* XUL
* Wt（英語版）

* 一覧（英語版）
* カテゴリ

* 表
* 話
* 編
* 歴

GNOME

コミュニティ|

| 人物|

* ミゲル・デ・イカザ
* フェデリコ・メーナ
* ハヴォック・ペニントン

|

その他|

* GNOME財団
* GUADEC

アプリケーション|

* Ekiga
* Evince
* Evolution
* Eye of GNOME
* gedit
* GNOME Office
* GNOME Shell
* GNOME 辞書
* GNOME スクリーンショット
* GNOME 端末
* GNOME 電卓
* GNOME パネル
* GnuCash
* gPhoto
* gtkam
* Metacity
* Mutter
* nano
* Pan
* Rhythmbox
* Sound Juicer
* Tomboy
* Web
* アーカイブマネージャー
* ディスク使用量アナライザー
* ビデオ
* ファイル
* GNOMEアプリケーション一覧

テクノロジー|

* ATK（英語版）
* Bonobo
* D-Bus
* Enlightened Sound Daemon
* Gamin（英語版）
* GConf
* GLib
* GNOME キーリング
* GnomeVFS
* GObject
* GStreamer
* GTK
* GVfs
* Mono
* ORBit（英語版）
* Pango
* クライアントサイド・デコレーション

関連記事|

* Freedesktop.org
* CDE
* KDE
* Xfce
* Cinnamon
* MATE

* カテゴリ
* コモンズ

典拠管理データベース

全般|

* VIAF

国立図書館|

* ドイツ
* アメリカ