GTK je multiplatformní knihovna prvků (widgets) pro tvorbu grafického rozhraní. Ačkoliv je napsána v jazyce C, díky objektově orientovanému systému GObject a silným vazbám (bindings) je dostupná pro téměř všechny moderní jazyky (Python, Rust, C++, JavaScript atd.).
Vývoj GTK prošel několika zásadními generacemi:
GTK nestojí osamoceně, ale opírá se o několik dalších knihoven:
Dva největší konkurenti v oblasti GUI frameworků:
| Vlastnost | GTK | Qt |
|---|---|---|
| Jazyk | Napsáno v C (používá GObject). | Napsáno v C++. |
| Styling | Přes standardní CSS. | Přes QSS (vlastní dialekt CSS) nebo QML. |
| Licence | LGPL (zdarma pro komerční užití). | Komerční nebo GPL/LGPL. |
| Desktop | Výchozí pro GNOME, XFCE, Budgie. | Výchozí pro KDE Plasma. |
import gi
gi.require_version("Gtk", "4.0")
from gi.repository import Gtk
def on_activate(app):
win = Gtk.ApplicationWindow(application=app)
btn = Gtk.Button(label="Ahoj světe!")
btn.connect("clicked", lambda x: print("Tlačítko stisknuto"))
win.set_child(btn)
win.present()
app = Gtk.Application(application_id="org.priklad.GtkApp")
app.connect("activate", on_activate)
app.run(None)
—
Zajímavost: GTK původně vzniklo jako nástroj pro program GIMP (GNU Image Manipulation Program), odtud také pochází jeho název. Dnes však pohání stovky velkých projektů včetně prohlížeče Firefox nebo textového editoru Inkscape.
Související: glibc, Linux, GNOME, Oficiální web GTK