GTK

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 19 mai 2015; verificările necesită 67 de modificări .
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]

Istorie

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

Arhitectură

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]

Aspect

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.

Utilizare

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+ Managerii de ferestre care folosesc GTK+ Aplicații care utilizează GTK+

GTK+ 3.0

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.

Exemplu de program

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`

Vezi și

Interfețe pentru alte limbaje de programare

Note

  1. Vezi fișierul AUTHORS din arhiva sursă GTK+ .
  2. http://directory.fsf.org/wiki/gtk+
  3. https://gitlab.gnome.org/GNOME/gtk/-/tags/4.8.2
  4. Proiectul gtk Open Source pe Open Hub: Pagina de limbi - 2006.
  5. Director de software liber
  6. ↑ Prezentare generală despre GTK+ și bibliotecile sale 
  7. Proiectul GTK+ anunță redenumirea în GTK . Consultat la 10 aprilie 2019. Arhivat din original pe 8 februarie 2019.
  8. 1 2 GTK+ 2.18.0 lansat  (eng.)  (downlink) . Preluat la 23 septembrie 2009. Arhivat din original la 23 august 2011.
  9. gtk 4.0.0 . Preluat la 27 octombrie 2021. Arhivat din original la 28 octombrie 2021.
  10. gtk 4.2.0 . Preluat la 27 octombrie 2021. Arhivat din original la 27 octombrie 2021.
  11. gtk 4.4.0 . Preluat la 27 octombrie 2021. Arhivat din original la 24 august 2021.
  12. gtk 4.6.0 . Preluat la 31 martie 2022. Arhivat din original la 23 ianuarie 2022.
  13. Tutorial GTK (downlink) . Preluat la 9 august 2011. Arhivat din original la 22 august 2011. 
  14. Go-GTK . mattn.github.io. Consultat la 20 noiembrie 2016. Arhivat din original pe 27 noiembrie 2016.
  15. GtkSharp - Mono . Preluat la 7 mai 2010. Arhivat din original la 26 ianuarie 2021.
  16. Anunțul „GTK+ Theming Hackfest” . Consultat la 25 aprilie 2009. Arhivat din original pe 17 iulie 2011.
  17. Plan de lucru Gtk+ 3.0 . Consultat la 25 aprilie 2009. Arhivat din original pe 12 aprilie 2009.

Link -uri