GTK+
(c) Andreas Nilsson, CC-BY-SA-3.0 Logo programu | |
Pierwsze wydanie | 1.0.0 – 14 kwietnia 1998; ponad 23 lat temu |
---|---|
Aktualna wersja stabilna | 4.4 (23 sierpnia 2021) [±] |
Aktualna wersja testowa | 3.22 (20 września 2016) [±] |
System operacyjny | BSD, Linux, macOS, Solaris, Windows i inne |
Rodzaj | Biblioteka programistyczna |
Licencja | GNU LGPL |
Strona internetowa |
GTK+ – biblioteka służąca do tworzenia interfejsu graficznego do programów komputerowych. Pierwotnie stworzona na potrzeby programu GIMP, stąd też nazwa, pochodząca od ang. The GIMP Toolkit. Znak + pojawił się w nazwie, gdy autorzy dodali do oryginalnego GTK możliwość programowania obiektowego[1].
GTK+ została napisana w C, aczkolwiek jest zaprojektowana obiektowo, w oparciu o implementację obiektowości dla C – GObject. Z biblioteki GTK+ można korzystać przy pomocy większości języków programowania. Dla C++ istnieje biblioteka gtkmm będąca nakładką na GTK+ wprowadzającą wygodniejszą składnię w stylu C++ (m.in. wykorzystanie tzw. pól i metod na obiektach GTK+), jak i również biblioteka Gtk# będąca nakładką umożliwiającą wykorzystanie GTK+ na platformie .NET. Dla języka Ada została stworzona biblioteka GtkADA, umożliwiająca pełny dostęp do funkcjonalności GTK+. PyGTK to biblioteka stworzona do obsługi języka Python[2]. W PyGTK jest napisanych wiele programów dla środowiska GNOME.
Biblioteka ta jest podstawą dla środowisk graficznych GNOME i Xfce. Na platformie uniksowej sama wykorzystuje bibliotekę GDK (odpowiedzialną za rysowanie obiektów) oraz GLib, zawierającą specjalne typy danych. Dzięki takiemu odseparowaniu GTK+ od systemu graficznego (w przypadku Uniksa jest to przeważnie X Window System) biblioteką bezpośrednio odpowiedzialną za interakcję z systemem graficznym, możliwe było łatwe przeportowanie GTK+ na inne niż uniksowe architektury (np.: Microsoft Windows oraz linuksowy DirectFB).
GTK+ przeszło duże zmiany w wersji 2.0. Do nich należą:
- pełna obsługa kodowania UTF-8,
- obsługa wygładzania czcionek i Xft,
- zaawansowany system wyświetlania i manipulacji tekstem (Pango),
- obsługa wielu języków jednocześnie,
- metody wprowadzania niezależne od X Input Method,
- system wspomagania dla osób niepełnosprawnych (ATK).
Przykładowy kod
Przykładowy kod w języku C wyświetlający puste okienko:
#include <gtk/gtk.h>
int main(int argc, char* argv[])
{
GtkWidget* window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "GTK+");
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_widget_show(window);
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_main();
return 0;
}
Przykładowy kod w języku Python ładujący okienko z pliku w formacie GtkBuilder (zob. Glade):
#!/usr/bin/env python
import gtk
if __name__ == '__main__':
builder = gtk.Builder()
builder.add_from_file('window.glade')
builder.connect_signals(globals())
window = builder.get_object('window')
window.connect('destroy', gtk.main_quit)
window.show()
gtk.main()
Zobacz też
- gtkmm
- Glade
- PyGTK
- Qt
- Ultimate++
- wxWidgets
- Clutter
Przypisy
- ↑ What is the + in GTK+? (ang.). [dostęp 2014-07-19].
- ↑ GTK+ Language Bindings (ang.). [dostęp 2014-07-19]. [zarchiwizowane z tego adresu (2011-07-13)].
Linki zewnętrzne
- GTK+ 3 Reference Manual (ang.)