GTK | |
---|---|
Tip de | cadrul de aplicație [d] și biblioteca de widget -uri [d] |
Autor |
Echipa GTK+, autori originali: Peter Mattis, Spencer Kimball, Josh MacDonald [1] |
Dezvoltator | Fundația GNOME și proiectul GNU [2] |
Scris in | C [4] |
Sistem de operare | GNU/Linux , macOS , sistem de operare asemănător Unix , Microsoft Windows și Linux |
Limbi de interfață | mai multe limbi [d] |
Prima editie | 14 aprilie 1998 |
Platformă hardware | multiplatformă |
ultima versiune |
|
Stat | activ |
Licență | LGPL-2.1 [d] [5][6]șiGNU LGPL |
Site-ul web | gtk.org _ |
Fișiere media la Wikimedia Commons |
GTK (fostul GTK+ [7] ; prescurtare pentru GIMP ToolKit ) este o bibliotecă de interfață multiplatformă (cadru) cu un API ușor de utilizat , împreună cu Qt , este una dintre cele mai populare două biblioteci pentru Wayland și X Window Sistem azi .
Parte inițială a editorului grafic GIMP , a evoluat într-un proiect separat și a câștigat o popularitate notabilă. GTK este un software gratuit distribuit în conformitate cu termenii GNU LGPL , care vă permite să creați atât software gratuit , cât și proprietar folosind biblioteca. GTK este biblioteca oficială de creare a GUI pentru Proiectul GNU . [opt]
Versiunea numarul | Data lansării versiunii | Schimbări semnificative | Ultima versiune minoră |
---|---|---|---|
1.0 | 14 aprilie 1998 | Prima lansare stabilă | 1.0.6 |
1.2 | 27 februarie 1999 | Widgeturi noi (GtkFontSelector, GtkPacker, GtkItemFactory, GtkCTree, GtkInvisible, GtkCalendar, GtkLayout, GtkPlug, GtkSocket) |
1.2.10 |
2.0 | 11 martie 2002 | GObject, Universal Unicode UTF-8 | 2.0.9 |
2.2 | 22 decembrie 2002 | Suport multicap | 2.2.4 |
2.4 | 16 martie 2004 | Widgeturi noi (GtkFileChooser, GtkComboBox, GtkComboBoxEntry, GtkExpander, GtkFontButton, GtkColorButton) |
2.4.14 |
2.6 | 16 decembrie 2004 | Widgeturi noi (GtkIconView, GtkAboutDialog, GtkCellView); aceasta este ultima versiune care acceptă Windows 98 / ME |
2.6.10 |
2.8 | 13 august 2005 | Integrarea Cairo | 2.8.20 |
2.10 | 3 iulie 2006 | Widgeturi noi (GtkStatusIcon, GtkAssistant, GtkLinkButton, GtkRecentChooser) și suport pentru imprimare (GtkPrintOperation) |
2.10.14 |
2.12 | 14 septembrie 2007 | GtkBuilder | 2.12.12 |
2.14 | 4 septembrie 2008 | Suport pentru descărcare JPEG 2000 | 2.14.7 |
2.16 | 13 martie 2009 | GtkOrientable nou, este afișat un avertisment în câmpul de introducere a parolei când este activată Caps Lock , îmbunătățiri în GtkScale, GtkStatusIcon, GtkFileChooser. |
2.16.6 |
2.18 | 23 septembrie 2009 | GtkInfoBar nou. Îmbunătățiri în dialogul de selecție a fișierelor, imprimare. GDK a fost rescris pentru a utiliza „ferestre pe partea clientului” |
2.18.9 |
2.20 | 23 martie 2010 | GtkSpinner și GtkToolPalette noi, GtkOffscreenWindow. Îmbunătățiri în dialogul de selecție a fișierelor, manipularea tastaturii, GDK. Datele de introspecție GObject incluse |
2.20.1 |
2.22 | 23 septembrie 2010 | gdk-pixbuf separat într-un modul separat, majoritatea funcțiilor de desen sunt acum efectuate de Cairo |
2.22.1 |
2.24 | 30 ianuarie 2011 | Noul widget ComboBox simplificat (GtkComboBoxText), backend-ul de imprimare CUPS poate trimite lucrări în PDF, GtkBuilder a primit suport pentru etichete text, o mulțime de remedieri la simbolurile de introspecție |
2.24.0 |
3.0 | 10 februarie 2011 | Redarea este acum complet responsabilă de Cairo , o abstracție din X11, folosind XInput2, suport pentru skin -uri asemănătoare CSS |
3.0.12 |
3.2 | 25 septembrie 2011 | Noi backend-uri experimentale Wayland și HTML5 , nou dialog de selectare a fonturilor, widget-uri noi: GtkLockButton și GtkOverlay |
3.2.4 |
3.4 | 26 martie 2012 | Suport pentru ecrane tactile, inclusiv multi-touch, suport pentru defilare lină, suport îmbunătățit pentru Windows, MacOS X, API extins pentru teme vizuale |
3.4.4 |
3.6 | 24 septembrie 2012 | Widgeturi noi: GtkSearchEntry, GtkMenuButton, GtkLevelBar. Butoanele de introducere a numerelor GtkSpinButton pot fi acum poziționate vertical. Suport pentru animații CSS, umbre neclare. |
3.6.5 |
3.8 | 13 mai 2013 | Suport Wayland 1.0, reproiectare backend Broadway GDK, teme îmbunătățite și gestionarea geometriei. S-a adăugat suport pentru ferestre pop-up, s-a făcut o muncă extinsă pentru a îmbunătăți performanța |
3.8.9 |
3.10 | 23 septembrie 2013 | Widgeturi noi (GtkHeaderBar, GtkPlacesSidebar, GtkStack, GtkStackSwitcher, GtkRevealer, GtkSearchBar, GtkListBox). Suport Wayland 1.2 (maximizare, cursore animate, monitoare multiple, setări, suprafețe personalizate și sincronizare a cadrelor) |
3.10.9 |
3.12 | 25 martie 2014 | suport Wayland 1.5; Widgeturi noi (Popover, GtkActionBar, GtkFlowBox). Suport îmbunătățit pentru meniul global în OS X. | 3.12.2 |
3.14 | 22 septembrie 2014 | suport Wayland 1.6; Integrarea depanatorului interactiv GtkInspector. Asistența pentru widget-urile GdkColor, GtkMisc, GtkArrow, GtkStatusIcon, GtkNumerableIcon, GtkThemingEngine a fost întreruptă. | 3.14.6 |
3.16 | 22 martie 2015 | Suport încorporat GDK pentru desenarea ferestrelor prin OpenGL pentru X11 și Wayland prin libepoxy folosind GLX sau EGL, widget-uri noi (GtkGLArea, GtkStackSidebar, GtkModelButton, GtkPopoverMenu), suport Mir experimental . | 3.16.0 |
3.18 | 22 noiembrie 2015 | Design actualizat de selecție a fișierelor, s-a eliminat suportul pentru Windows XP | 3.18.5 |
3.20 | 21 martie 2016 | Sistem de noduri CSS implementat, widget GtkShortcutsWindow nou | 3.20.3 (link indisponibil) |
3.22 | 20 septembrie 2016 | S-a adăugat API-ul GtkPadController pentru gestionarea gesturilor de pe tablete, noul widget GtkShortcutLabel, tehnologia Flatpak integrată | 3.22.0 |
4.0 | 16 decembrie 2020 [9] | Lansarea setului de instrumente pentru grafică GTK 4.0 | 4.0.3 |
4.2 | 30 martie 2021 [10] | Lansarea setului de instrumente pentru grafică GTK 4.2 | 4.2.1 |
4.4 | 23 august 2021 [11] | Lansarea setului de instrumente pentru grafică GTK 4.4 | 4.4.0 |
4.6 | 30 decembrie 2021 [12] | Setul de instrumente pentru grafică GTK 4.6 disponibil | 4.6.2 |
GTK+ este scris în C , dar este totuși orientat pe obiecte [13] . Unul dintre motivele pentru care am ales C ca limbaj a fost dorința de a construi cu ușurință interfețe pentru alte limbaje de programare . Ca rezultat, GTK+ poate fi scris în următoarele limbaje de programare:
Limba | Nume | A sustine |
---|---|---|
Ada | GtkAda | Suport parțial până la 2.18 |
C | GTK+ | Incorporat |
C++ | gtkmm | da |
C# și alte limbaje de programare .NET |
gtk# | Suport parțial până la 2.20 |
D | gtkD | Suportul GTK2 a fost gtkD-1.7.4, după - GTK3 (plus Cairo , Gda , Gl , GStreamer ) |
Erlang | gtkNode | Suport parțial până la 2.16 |
Fortran | gtk-fortran | Suport parțial până la 2.24 / 3.0 |
merge | du-te-gtk | Sprijin parțial (33%) [14] |
GOB | limbi scrise pentru sistemul GObject . | da |
Genie | limbi scrise pentru sistemul GObject . | da |
Haskell | gtk2hs | da |
FreeBASIC | GTK+tobac2 | Suport parțial înainte de 2.22: acceptat și de GTK3 |
Pascal liber | (header) integrat în distribuția de bază | GTK 2.16 cu suport parțial ulterior |
Java | java-gnome | Suport parțial până la 2.20 (nu este disponibil pe Windows) |
JavaScript | sămânță / GJS | da |
Lua | lgob | Acceptă toate versiunile începând de la 2.16 |
Lisp | cl-cffi-gtk | |
Lua | LuaGtk | Suport parțial până la 2.16 |
Node.js | nod-gtk | da |
OCaml | EtichetăGTK | Suport parțial până la 2.16 |
Perl | perl-Gtk3 | da |
PHP | PHP-GTK | Suport parțial până la 2.20 |
PureBasic | gtk2 | da |
Piton | GObject - introspecție prin PyGI , anterior PyGTK | da |
R | RGtk2 | Suport parțial până la 2.12 |
rubin | rubin-gtk2 | da |
Convorbire scurtă | Smalltalk GTK | GNU Smalltalk , Smalltalk YX , Squeak |
tcl | Gnocl | da |
Vala | limbi scrise pentru sistemul GObject . | da |
De fapt, GTK+ constă din două componente: GTK și GDK . Primul conține un set de elemente de interfață cu utilizatorul sau „ widget -uri ” (cum ar fi un buton , o listă, un câmp de introducere a textului etc. ) pentru diferite sarcini. GDK este responsabil pentru ieșirea pe ecran și poate utiliza funcțiile X Window System , Wayland , Linux Framebuffer , WinAPI sau Mac OS X pentru a face acest lucru . Începând cu versiunea 2.8, GDK a fost înlocuit în mare măsură (dar nu complet) de sistemul de randare a graficelor vectoriale Cairo .
Pe lângă Cairo, GTK+ depinde de trei biblioteci - GLib , Pango și ATK - care sunt dezvoltate împreună cu GTK+, dar pot fi utilizate și separat. [opt]
Aspectul interfețelor grafice create folosind GTK+ poate fi configurat de utilizator și/sau programator. În acest caz, nu sunt configurate doar culorile și fonturile, ci și modul în care sunt afișate diverse elemente. Acest lucru se realizează prin utilizarea „ motoarelor ” pentru afișare. Prin conectarea unui alt motor, puteți schimba radical aspectul programelor. De exemplu, unele motoare pot folosi o vedere pseudo 3D , altele o vedere mai „plată” etc.
Desktopurile GNOME și Xfce sunt bazate pe GTK+ . Programele care folosesc GTK+ pot rula în alte medii, cum ar fi KDE și LXQt . În plus, GTK+ poate rula și pe sistemele de operare ale familiilor Microsoft Windows și Mac OS X.
GTK+ a fost, de asemenea, ales ca principală bibliotecă de clădire UI pentru Mono (un port al Microsoft.NET pentru Linux). [cincisprezece]
Următoarea este o listă incompletă (deoarece GTK este prea popular) de proiecte care utilizează GTK:
Medii desktop care folosesc GTK+Versiunea GTK 3.0.0 a revizuit gestionarea dispozitivului de intrare, a inclus suport pentru teme scrise cu sintaxă asemănătoare CSS și a adăugat posibilitatea de a obține informații din alte aplicații GTK deschise.
Dezvoltarea următoarei versiuni de GTK+ a început în februarie 2009 la GTK+ Theming Hackfest din Dublin [16] . Prima schiță a planului de dezvoltare a fost publicată la 9 aprilie 2009 [17] .
Pe 10 februarie 2011 a fost lansat GTK+ 3.0.0.
O simplă lume bună! » pe GTK+ pe Linux
/* Include biblioteca GTK+ */ # include <gtk/gtk.h> int main ( int argc , char * argv []) { /* Declarați widget-uri */ GtkWidget * etichetă ; // Eticheta GtkWidget * fereastra ; // Fereastra principală /* Inițializați GTK+ */ gtk_init ( & argc , & argv ); /* Creați fereastra principală */ fereastră = gtk_window_new ( GTK_WINDOW_TOPLEVEL ); /* Setați titlul ferestrei la „Bună lume!” */ gtk_window_set_title ( GTK_WINDOW ( fereastră ), „Bună lume!” ); /* Creați o etichetă cu textul „Hello world!” */ label = gtk_label_new ( "Bună lume!" ); /* Inserează o etichetă în fereastra principală */ gtk_container_add ( GTK_CONTAINER ( fereastră ), etichetă ); /* Afișează fereastra împreună cu widget-uri */ gtk_widget_show_all ( fereastra ); /* Conectați semnalul de terminare la ieșirea programului */ g_signal_connect ( G_OBJECT ( fereastră ), „distruge” , G_CALLBACK ( gtk_main_quit ), NULL ); /* Aplicația intră într-o buclă eternă în așteptarea acțiunilor utilizatorului */ gtk_main (); returnează 0 ; }Pentru a compila exemplul, trebuie să rulați comanda:
gcc nume_fișier.c -o nume_fișier `pkg-config --cflags --libs gtk+-3.0`Pe Windows, puteți compila exemplul folosind MinGW cu următoarea comandă:
i686-pc-mingw32-gcc nume_fișier.c `PKG_CONFIG_LIBDIR=da PKG_CONFIG_PATH=/usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig/ pkg-config --cflags --libs. gtk`GNOME | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
de bază |
| ||||||||||||||||
Aplicații |
| ||||||||||||||||
Componente | |||||||||||||||||
Arhitectura platformei |
| ||||||||||||||||
Comunitate | |||||||||||||||||
oameni | |||||||||||||||||
|
de elemente GUI | Seturi de instrumente (seturi)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nivel scăzut |
| ||||||||||||||||||||||||||
nivel înalt |
|