GTK+

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
GTK+
biblioteka
GTK+ logo.svg
Logo programu
Producent GNOME Foundation
System operacyjny Mac OS, Linux, BSD, Solaris, Windows i inne
Pierwsze wydanie 1.0.0 / 1998-04-1414 kwietnia 1998
Aktualna wersja stabilna 3.12.2 / 12 maja 2014[1]
Aktualna wersja testowa 3.13.4 / 15 lipca 2014[2]
Licencja LGPL
Książki w Wikibooks Książki w Wikibooks
www.gtk.org

GTK+biblioteka służąca do tworzenia interfejsu graficznego do programów komputerowych. Pierwotnie stworzona na potrzeby programu GIMP, stąd też nazwa - The GIMP Toolkit. Znak + pojawił się w nazwie, gdy autorzy dodali do oryginalnego GTK możliwość programowania obiektowego[3].

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[4]. W PyGTK jest napisanych wiele programów dla środowiska GNOME[potrzebne źródło].

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[edytuj | edytuj 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ż[edytuj | edytuj kod]

Przypisy

  1. GTK+ 3.12 - GNOME FTP (ang.). [dostęp 2014-07-19].
  2. GTK+ 3.13 - GNOME FTP (ang.). [dostęp 2014-07-19].
  3. What is the + in GTK+? (ang.). [dostęp 2014-07-19].
  4. GTK+ Language Bindings (ang.). [dostęp 2014-07-19].

Linki zewnętrzne[edytuj | edytuj kod]