GTK - GTK

GTK
Logo GTK.svg
Gtk4-widget-factory demos.png
GTK versiunea 4 ( gtk4-widget-factory , o colecție de exemple care demonstrează multe dintre widget-urile GUI )
Autori originali Spencer Kimball , Peter Mattis
Dezvoltatori Proiectul GNOME , instalația de calcul eXperimental (XCF)
Eliberarea inițială 14 aprilie 1998 ; Acum 23 de ani ( 14.04.1998 )
Versiune stabila
4.4.0 / 23 august 2021 ; Acum 57 de zile ( 2021-08-23 )
Previzualizare lansare
4.3.1 / 9 iunie 2021 ; acum 4 luni ( 09.06.2021 )
Repertoriu
Scris in C , CSS
Sistem de operare Linux , Unix-like , macOS , Windows
Tip Set de instrumente Widget
Licență LGPLv2.1 +
Site-ul web gtk .org

GTK (fost GIMP ToolKit, apoi GTK + ) este un set de instrumente cu platformă gratuită și open-source pentru crearea de interfețe grafice de utilizator (GUI). Este licențiat în conformitate cu termenii licenței publice generale mai mici GNU , permițând software-ului gratuit și proprietar să-l folosească. Este unul dintre cele mai populare seturi de instrumente pentru sistemele de ferestre Wayland și X11 .

Echipa GTK lansează noi versiuni în mod regulat. GTK 4 și GTK 3 sunt întreținute, în timp ce GTK 2 este la sfârșitul vieții.

Arhitectura software

Arhitectura software simplificată a GTK . Pango , GDK , ATK , GIO , Cairo și GLib
GDK conține back-end-uri pentru X11 , Wayland , Broadway ( HTTP ), Quartz și GDI și se bazează pe Cairo pentru redare. Noul său SceneGraph este în lucru.

Biblioteca GTK conține un set de elemente grafice de control ( widget-uri ); versiunea 3.22.16 conține 186 de widgeturi active și 36 de widget-uri depreciate. GTK este un set de instrumente widget orientat obiect scris în limbajul de programare C ; folosește GObject , adică sistemul de obiecte GLib , pentru orientarea obiectului. În timp ce GTK este destinat în principal sistemelor de ferestre bazate pe X11 și Wayland , acesta funcționează pe alte platforme, inclusiv Microsoft Windows (interfațat cu API-ul Windows ) și macOS (interfațat cu Quartz ). Există, de asemenea, un back-end HTML5 numit Broadway .

GTK poate fi configurat pentru a schimba aspectul widgeturilor desenate; acest lucru se face folosind diferite motoare de afișare. Există mai multe motoare de afișare care încearcă să imite aspectul widgeturilor native de pe platforma utilizată.

Începând cu versiunea 2.8, lansată în 2005, GTK a început tranziția către utilizarea Cairo pentru a reda majoritatea widgeturilor elementelor sale de control grafic . Începând cu versiunea GTK 3.0, toate randările se fac folosind Cairo.

Pe 26 ianuarie 2018 la DevConf.cz , Matthias Clasen a prezentat o imagine de ansamblu asupra stării actuale a dezvoltării GTK 4, inclusiv o explicație la nivel înalt a modului în care a funcționat redarea și intrarea în GTK 3, ce modificări se fac în GTK 4 (> 3,90 ), și de ce. La 6 februarie 2019, s-a anunțat că GTK 4 va renunța la „+” din numele proiectului.

Set de desen GTK (GDK)

GDK acționează ca un wrapper în jurul funcțiilor de nivel scăzut furnizate de ferestrele de bază și sistemele grafice.

GDK se găsește în /gdkdirector.

GTK Scene Graph Kit (GSK)

GSK este API-ul de redare și scenă pentru GTK. GSK se află între elementele de control grafic (widget-uri) și redare. GSK a fost în cele din urmă fuzionat în versiunea GTK 3.90 lansată în martie 2017.

GSK se găsește în /gskdirector.

GtkInspector

GtkInspector a fost introdus cu versiunea 3.14. GtkInspector poate fi invocat numai după instalarea pachetului de dezvoltare libgtk-3-dev / gtk + -devel .

Designeri GUI

Există mai mulți designeri GUI pentru GTK. Următoarele proiecte sunt active din iulie 2011:

  • Glade , acceptă GtkBuilder , care este un format de descriere GUI încorporat GTK.
  • Gazpacho , constructor GUI pentru setul de instrumente GTK scris în Python
  • Crow Designer, se bazează pe propriul format GuiXml și biblioteca GuiLoader.
  • Stetic , parte a MonoDevelop , orientată spre Gtk # .
  • Gambas de la versiunea 2.0 în vârful BASIC
  • Xojo pe Linux
  • Lazarus pe Linux implicit este interfața cu GTK 2

GtkBuilder

GtkBuilder permite proiectarea interfețelor utilizator fără a scrie cod. Interfața este descrisă într-un fișier Extensible Markup Language (XML), care este apoi încărcat la runtime și obiectele create automat. Glade Interface Designer permite crearea interfeței de utilizator într-un mod pe care îl vedeți ( WYSIWYG ). Descrierea interfeței cu utilizatorul este independentă de limbajul de programare utilizat.

Legături de limbă

Legările de limbă sunt disponibile pentru utilizarea GTK din alte limbi decât C, inclusiv C ++ , Genie , JavaScript , Perl , Python , Vala și altele .

GtkSharp, care nu trebuie confundat cu Gtk #, acceptă GTK 3.

Gtk #

Gtk #
Gtk Sharp Logo.png
Dezvoltatori Xamarin
Eliberarea inițială 12 martie 2004 ; Acum 17 ani ( 12.03.2004 )
Versiune stabila
2.12.41 / 22 septembrie 2016 ; acum 5 ani ( 22.09.2016 )
Previzualizare lansare
2.99.3 (pentru GTK3) / 6 iunie 2014 ; acum 7 ani ( 06.06.2014 )
Repertoriu
Scris in C # , XML , Perl , C
Sistem de operare Windows , macOS , Linux
Tip Set de instrumente Widget
Licență Licență publică generală mai mică GNU
Site-ul web mono-proiect .com / GtkSharp

GTK # este un set de NET Framework legări pentru GTK interfață grafică cu utilizatorul (GUI) , setul de instrumente și asortate GNOME biblioteci . Biblioteca facilitează crearea de aplicații grafice GNOME utilizând Mono sau orice alt tip de limbă comună (CLR). Gtk # este un sistem bazat pe evenimente, ca orice altă bibliotecă modernă de ferestre, în care fiecare widget permite asocierea metodelor de gestionare, care sunt apelate atunci când apar anumite evenimente.

Aplicațiile construite folosind Gtk # vor rula pe multe platforme, inclusiv Linux , Windows și macOS . Pachetele Mono pentru Windows includ GTK, Gtk # și o temă nativă pentru a face aplicațiile să arate ca aplicații Windows native. Începând cu Mono 1.9, rularea aplicațiilor Gtk # pe macOS nu mai necesită rularea unui server X11 .

Glade Interface Designer poate fi utilizat cu legăturile Glade # pentru a proiecta cu ușurință aplicații GUI. Un designer GUI numit Stetic este integrat cu mediul de dezvoltare integrat MonoDevelop (IDE).

În plus față de suportul stivei standard de instrumente de dezvoltare GTK / GNOME, ansamblul gtk-dotnet.dll oferă o punte pentru consumarea funcționalității disponibile în stiva .NET. În acest moment, aceasta include funcționalitatea de a utiliza System.Drawing pentru a desena pe un widget.

Începând cu septembrie 2020, suportul Gtk # pentru Gtk3 rămâne în faza de previzualizare și proiectele forțate , cum ar fi GtkSharp , au fost fondate pentru a oferi suport Gtk3 complet pentru C # și alte limbi CLI. Lipsa unei versiuni lansate de Gtk # cu suport pentru Gtk3 a fost citată ca motiv pentru eliminarea playerului media Banshee din Ubuntu 12.04.

Dezvoltare

GTK este dezvoltat în principal de Proiectul GNOME , care dezvoltă și platforma de dezvoltare GNOME și mediul desktop GNOME.

Dezvoltarea GTK este slab gestionată. Discuția are loc în principal pe mai multe liste de discuții publice. Dezvoltatorii și utilizatorii GNOME se reunesc la o reuniune anuală a Conferinței Europene a Utilizatorilor și Dezvoltatorilor GNOME GUADEC pentru a discuta despre starea actuală și direcția viitoare a GNOME. GNOME încorporează standarde și programe de la freedesktop.org pentru a interoperă mai bine cu alte desktopuri.

GTK este scris în principal în C . Sunt disponibile multe legături lingvistice .

La 1 septembrie 2016, o postare pe blogul de dezvoltare GTK denota, printre altele, viitoarea schemă de numerotare a GTK. Versiunea GTK 3.22 din toamna anului 2016 va fi ultima versiune 3.x. Versiunea 3.24 a fost introdusă în toamna anului 2018 cu întârzierea GTK 4. După aceea, toate resursele vor trece la seria de dezvoltare GTK 4 cu numele versiunilor 3.90, 3.92 etc. Chiar dacă seria 4.x intră în dezvoltare, aplicațiile notabile folosesc în continuare GTK 2.x și nu au fost portate la 3.22. În ceea ce privește viitorul software-urilor vechi care folosesc GTK , nu a existat un proiect colectiv care să porteze software-ul GTK 2.x la 3.22. Versiunea 3.24 este acceptată pe termen lung și baza reală și viitoare a programelor precum gimp 3.0 și Inkscape 1.0. Deci, pentru dezvoltatori este alegerea stabilă GTK 3.24 cu remedierea erorilor sau GTK 4 cu modificări și caracteristici noi în dezvoltarea viitoare.

Automatizarea construcției

GTK (și GNOME, GLib etc.) a folosit anterior sistemul GNU Build (denumit Autotools) ca sistem de automatizare al construcției la alegere.

Începând cu 14 august 2017, filiala principală a GTK a fost construită cu Meson , iar fișierele de sistem de construire Autotools au fost abandonate.

Critică

Cea mai frecventă critică a GTK este lipsa compatibilității cu versiunile anterioare în actualizările majore, în special în interfața de programare a aplicațiilor (API) și tematică.

Pauzele de compatibilitate între versiunile minore în timpul ciclului de dezvoltare GTK 3.x au fost explicate de Benjamin Otte ca urmare a presiunilor puternice de inovare, cum ar fi furnizarea caracteristicilor pe care utilizatorii moderni le așteaptă și sprijinirea protocolului de server de afișare Wayland din ce în ce mai influent . Odată cu lansarea GTK 4, presiunea din nevoia de a inova va fi eliberată, iar echilibrul dintre stabilitate și inovație se va înclina spre stabilitate. În mod similar, modificările recente ale tematicii sunt destinate în mod special îmbunătățirii și stabilizării acelei părți a API-ului, ceea ce înseamnă că unele investiții ar trebui acum recompensate ulterior.

  • Dirk Hohndel, codeveloper de Subsurface și membru al Intel Open-Source Technology Center lui, a criticat dezvoltatorii GTK pentru a fi abraziv și ignorând cele mai multe cereri comunitare.
  • Hong Jen Yee, dezvoltator LXDE (a cărui versiune GTK a fost renunțată și toate eforturile s-au concentrat asupra portului Qt ), și-a exprimat disprețul față de versiunea 3 a modificărilor radicale API ale kitului de instrumente GTK și utilizarea sporită a memoriei și a portat PCMan File Manager (PCManFM) la Qt . PCManFM este dezvoltat în același timp cu un GTK și cu un backend Qt.
  • Audacious music player -ul sa mutat la Qt în versiunea 3.6. Motivele declarate de dezvoltatori pentru acest lucru includ o tranziție către decorațiile de ferestre din partea clientului, despre care susțin că fac ca aplicația să arate „ GNOME -y și deplasată”.
  • Wireshark a trecut la Qt din cauza faptului că nu a avut o experiență bună cu suportul multipiatformat al GTK.

Utilizare

Suportul GTK pentru Wayland , cerințele necesare pentru a fi adaptate și Wayland
Captură de ecran a GIMP 2.8 - GTK este responsabil pentru gestionarea componentelor interfeței programului, inclusiv a meniurilor, butoanelor și câmpurilor de intrare.

Aplicații

Unele aplicații notabile care utilizează sau au folosit odată GTK ca set de instrumente widget includ:

Medii desktop

Mai multe medii desktop utilizează GTK ca set de instrumente widget.

Actual

Inactiv

Diverse

Programele GTK pot fi rulate pe medii desktop bazate pe X11 și Wayland, sau manageri de ferestre chiar și pe cele care nu sunt realizate cu GTK, cu condiția ca bibliotecile necesare să fie instalate; aceasta include macOS dacă este instalat X11.app . GTK poate fi, de asemenea, rulat pe Microsoft Windows , unde este utilizat de unele aplicații cross-platform populare precum Pidgin și GIMP. wxWidgets , un set de instrumente GUI pe mai multe platforme, utilizează GTK pe Linux în mod implicit. Alte porturi includ DirectFB (folosit de instalatorul Debian , de exemplu) și ncurses .

Managerii de ferestre

Următorii manageri de ferestre folosesc GTK:

GtkSourceView

Pentru evidențierea sintaxei există GtkSourceView , „widget de editare cod sursă”. GtkSourceView este întreținut de GNOME separat de GTK ca bibliotecă: gtksourceview . Există planuri de redenumire în gsv.

GtkSpell

GtkSpell este o bibliotecă separată de GTK. GtkSpell depinde de GTK și Enchant . Enchant este un wrapper pentru ispell, hunspell , etc., motorul / software-ul actual de verificare a ortografiei . GtkSpell folosește widget-ul GtkTextView al GTK, pentru a evidenția cuvintele scrise greșit și pentru a oferi înlocuirea.

Exemplu

Documentația este disponibilă aici:

Următorul cod prezintă un grafic GTK salut din lumea de program în limbajul de programare C . Acest program are o fereastră cu titlul "Bună, lume!" și o etichetă cu text similar.

// helloworld.c
#include <gtk/gtk.h>

/* Callback that will be called when the application is activated */
static void
activate_callback(GApplication *app, gpointer user_data)
{
    GtkWidget *window;
    GtkWidget *label;

    /* Create the main, top level window */
    window = gtk_window_new();

    /* Give it the title */
    gtk_window_set_title(GTK_WINDOW(window), "Hello, world!");

    /* Set the window's default size */
    gtk_window_set_default_size(GTK_WINDOW(window), 200, 100);

    /* Assign the variable "label" to a new GTK label,
     * with the text "Hello, world!" */
    label = gtk_label_new("Hello, world!");

    /* Plot the label onto the main window */
    gtk_window_set_child(GTK_WINDOW(window), label);

    /* Make the application aware of the window.
     * The application process will continue to run until all
     * windows are closed */
    gtk_application_add_window(GTK_APPLICATION(app), GTK_WINDOW(window));

    /* Make sure that everything, window and label, are visible */
    gtk_widget_show(window);
}

int main (int argc, char *argv[])
{
    /* Create our test application */
    GtkApplication *application = gtk_application_new("org.wikipedia.gtktest", 0);

    /* Connect our handler to the "activate" callback, which will be called
     * when the application is activated by the user, e.g. on first start */
    g_signal_connect(application, "activate", G_CALLBACK(activate_callback), NULL);

    /* Run the application and return its status */
    return g_application_run(G_APPLICATION(application), argc, argv);
}

Necesită instalarea bibliotecilor mai întâi în Debian sau derivate: $ sudo apt-get install libgtk-4-dev

Folosind pkg-config într-un shell Unix , acest cod poate fi compilat cu următoarea comandă: $ cc -Wall $(pkg-config --cflags --libs gtk4) helloworld.c -o helloworld

Invocați programul: $ ./helloworld

Istorie

Linux

GTK a fost proiectat și utilizat inițial în Programul de manipulare a imaginilor GNU (GIMP) ca înlocuitor al setului de instrumente Motif ; la un moment dat, Peter Mattis s-a dezamăgit de Motif și a început să scrie propriul său set de instrumente GUI numit setul de instrumente GIMP și a înlocuit cu succes Motif cu lansarea de 0,60 a GIMP. În cele din urmă, GTK a fost rescris pentru a fi orientat obiect și a fost redenumit GTK +. Acest lucru a fost folosit pentru prima dată în versiunea 0.99 a GIMP. GTK a fost ulterior adoptat pentru întreținere de către Fundația GNOME , care o folosește în mediul desktop GNOME.

Seria de versiuni GTK 2.0.0 a introdus noi caracteristici care includ redarea textului îmbunătățită folosind Pango , un nou motor tematic , accesibilitate îmbunătățită folosind Accessibility Toolkit , tranziția la Unicode folosind șiruri UTF-8 și un API mai flexibil. Începând cu versiunea 2.8, GTK 2 depinde de biblioteca grafică Cairo pentru redarea graficii vectoriale.

Versiunea 3.0.0 GTK a inclus manipularea revizuită a dispozitivelor de intrare, suport pentru teme scrise cu sintaxă de tip CSS și posibilitatea de a primi informații despre alte aplicații GTK deschise.

„+” A fost renunțat la „GTK” în februarie 2019 în timpul unui Hackathon .

macOS

Cu Quartz -Backend GTK este disponibil în macOS .

Windows

  • După GTK 2.24.10 și 3.6.4 Dezvoltarea Windows cu Installer a fost închisă de Gnome. Instalarea MSYS2 pe Windows este o modalitate bună de a utiliza GTK real.
  • GTK 2.24.10 și 3.6.4 este disponibil în Internet, dar foarte buggy și limitat la versiunile actuale.
  • O versiune pentru Windows pe 64 de biți este pregătită de Tom Schoonjans cu 2.24.33 (actual ca Linux) și 3.24.24 (actual ca Linux) din ianuarie 2021 disponibile.
  • Actualizarea Fall Creators pentru Windows 10 include subsistemul Windows pentru Linux (WSL). Cu distribuții Linux precum Ubuntu sau Debian disponibile din Windows Store și un server X precum Xming sau VcXsvr, mii de programe precum GTK 2 sau 3 pot rula cu X sau suport terminal.

OpenVMS

HP a declarat că obiectivul lor a fost să îmbine modificările OpenVMS necesare în fluxul de dezvoltare GTK Versiunea 1.3, însă acest lucru nu s-a concretizat niciodată. Cea mai recentă versiune a GTK pentru OpenVMS este versiunea 1.2.10.

GTK 4

Una dintre noutățile cardinale implementate în timpul ciclului de dezvoltare GTK 4 (adică GTK 3.92 etc.) a fost delegarea funcționalității către obiecte auxiliare în loc să o codifice în clasele de bază furnizate de GTK.

  • gestionarea evenimentelor de la gestionarele de semnal descrise de GtkWidget este delegată controlerelor de evenimente
  • redarea este delegată obiectelor GtkSnapshot
  • mecanismul de aspect din GtkWidget este delegat către GtkLayoutManager

În 2018-26 ianuarie la DevConf.cz, Matthias Clasen a oferit o prezentare generală a stării actuale a dezvoltării GTK 4, inclusiv o explicație la nivel înalt a modului în care funcționează redarea și intrarea în GTK 3, ce modificări au fost aduse GTK 4, și motivele acestor schimbări. Au fost date și exemple de lucruri care au devenit posibile cu GTK 4.

Lansări

Legendă:
Versiune veche
Versiune mai veche, încă menținută
Ultima versiune
Ultima versiune de previzualizare
Lansare viitoare
Seria de lansare Eliberarea inițială Îmbunătățiri majore Ultima versiune minoră
Versiune veche, care nu mai este menținută: 1.0 13.04.1998 Prima versiune stabilă 1.0.6
Versiune veche, care nu mai este menținută: 1.2 25.02.1999 Widgeturi noi :
  • GtkFontSelector
  • GtkPacker
  • GtkItemFactory
  • GtkCTree
  • GtkInvisible
  • GtkCalendar
  • GtkLayout
  • GtkPlug
  • GtkSocket
1.2.10
Versiune veche, care nu mai este menținută: 2.0 11-03-2002 GObject

Suport general pentru UTF-8

2.0.9
Versiune veche, care nu mai este menținută: 2.2 22.12.2002 Suport multi-cap 2.2.4
Versiune veche, care nu mai este menținută: 2.4 16.03.2004 Widgeturi noi:
  • GtkFileChooser
  • GtkComboBox
  • GtkComboBoxEntry
  • GtkExpander
  • GtkFontButton
  • GtkColorButton
2.4.14
Versiune veche, care nu mai este menținută: 2.6 2004-12-16 Widgeturi noi:
  • GtkIconView
  • GtkAboutDialog
  • GtkCellView

Ultimul care acceptă Windows 98 / Me

2.6.10
Versiune veche, care nu mai este menținută: 2.8 13.08.2005 Majoritatea widgeturilor sunt redate de Cairo 2.8.20
Versiune veche, care nu mai este menținută: 2.10 03.07.2006 Widgeturi noi:
  • GtkStatusIcon
  • GtkAssistant
  • GtkLinkButton
  • GtkRecentChooser

Suport pentru imprimare: GtkPrintOperation

2.10.14
Versiune veche, care nu mai este menținută: 2.12 14.09.2007 GtkBuilder 2.12.12
Versiune veche, care nu mai este menținută: 2.14 04.09.2008 Suport de încărcare JPEG 2000 2.14.7
Versiune veche, care nu mai este menținută: 2.16 13.03.2009 Widget nou: GtkOrientable

Avertizare Blocare majuscule la introducerea parolei

Îmbunătățiri pe GtkScale, GtkStatusIcon, GtkFileChooser

2.16.6
Versiune veche, care nu mai este menținută: 2.18 23.09.2009 Widget nou: GtkInfoBar

Îmbunătățirea alegerii fișierelor, imprimare

Pentru a elimina o mare parte din IPC-ul necesar între aplicația X11 și serverul X11, GDK este rescris (în principal de Alexander Larsson) pentru a utiliza „Windows-side windows”, adică GdkWindow, pe care trebuie să o aibă fiecare widget, aparține acum clientului

2.18.9
Versiune veche, care nu mai este menținută: 2.20 23.03.2010 Widgeturi noi:
  • GtkSpinner
  • GtkToolPalette
  • GtkOffscreenWindow

Îmbunătățiri în alegerea fișierelor, gestionarea tastaturii, GDK

Datele de introspecție sunt acum incluse în GTK

2.20.1
Versiune veche, care nu mai este menținută: 2.22 23-09-2010 GdkPixbuf sa mutat în modul separat

Majoritatea desenelor GDK se bazează pe Cairo

Multe date interne sunt acum private și pot fi sigilate în pregătirea pentru GTK 3

2.22.1
Versiune veche, care nu mai este menținută: 2.24 30.01.2011 Widget nou: GtkComboBoxText

Backup-ul de imprimare CUPS poate trimite lucrări de tipărire în format PDF

GtkBuilder a câștigat suport pentru etichete text și butoane de meniu și au fost adăugate multe remedieri de adnotare introspecțională

Migrarea de la GTK + 2.x la GTK + 3

2.24.32
(08.01.2018)
Versiune veche, care nu mai este menținută: 3.0 10.02.2011 Dezvoltarea și proiectarea versiunii GTK 3 a setului de instrumente a început în februarie 2009 în cadrul GTK Theming Hackfest desfășurat la Dublin
  • Prima schiță a foii de parcurs pentru dezvoltare a fost lansată la 9 aprilie 2009

Finalizat în mare parte Project Ridley

  • încercarea de a consolida mai multe biblioteci care erau externe GTK +
  • inclusiv libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel, gtkglext, șilibsexy

Toată redarea se face folosind Cairo

GDK a devenit mai agnostic X11

XInput2, API-ul temei se bazează pe foi de stil în cascadă (CSS), înrăutățind performanța realizabilă pentru cadrele de 60 Hz

3.0.12
Versiune veche, care nu mai este menținută: 3.2 25-09-2011 Widgeturi noi:
  • GtkLockButton
  • GtkOverlay

Noul dialog de selectare a fonturilor

Backend-uri experimentale noi:

3.2.4
Versiune veche, care nu mai este menținută: 3.4 26.03.2012 Suport pentru meniu în GtkApplication

Un nou selector de culori

Suport adăugat pentru dispozitive tactile

Suport adăugat pentru derularea lină

GtkScrolledWindow va face derulare cinetică cu dispozitive tactile

suportul macOS este îmbunătățit

Aceasta este prima versiune a GTK 3 care funcționează bine pe Windows

Backend-ul Wayland este actualizat la versiunea actuală Wayland

Butoanele de rotire au primit un aspect nou

Accesibilitate: suportul accesibil pentru vizualizarea copacilor este rescris

Suport tematic CSS mai complet

3.4.4
Versiune veche, care nu mai este menținută: 3.6 2012-09-24 Widgeturi noi:
  • GtkSearchEntry
  • GtkMenuButton
  • GtkLevelBar

Butoane de rotire verticale

Animații CSS, estompează umbrele

Suport pentru decolorare încrucișată și tranziții în teme

3.6.5
Versiune veche, care nu mai este menținută: 3.8 25.03.2013 Suport stabil Wayland 1.0

Suport pentru serverul broadwayd

Îmbunătățirea tematicii

O mai bună gestionare a geometriei

Atingeți îmbunătățiri

Suport cu managerul de ferestre pentru protocolul de sincronizare a cadrelor

S-a adăugat GdkFrameClock

3.8.9
Versiune veche, care nu mai este menținută: 3.10 23-09-2013 Widgeturi noi:
  • GtkHeaderBar
  • GtkPlacesSidebar
  • GtkStack
  • GtkStackSwitcher
  • GtkRevealer
  • GtkSearchBar
  • GtkListBox

Suport pentru Wayland 1.2

  • maximizare
  • cursori animati
  • monitoare multiple
  • setări
  • suprafețe personalizate
  • sincronizarea cadrelor

Adăugat:

  • decorațiuni de partea clientului
  • suport de ieșire scalat pe ecrane de înaltă dpi
  • modul de reglare fină pentru derulare

Îndepărtat:

  • suport pentru protocolul Motif DND
  • suport pentru mai multe ecrane pe afișaj
  • gdk_window_get_display
  • gtk_widget_push_composite_child

Elemente de meniu înlăturate, plus multe setări GTK

Modelul modern de desen GTK

3.10.9
Versiune veche, care nu mai este menținută: 3.12 25.03.2014 Decorațiuni de partea clientului

Suport pentru Wayland 1.5

Widget nou: GtkPopover (o alternativă la meniuri și dialoguri)

3.12.2
Versiune veche, care nu mai este menținută: 3.14 22.09.2014 A fost introdus GtkInspector (o copie a gtkparasite)

Suport îmbunătățit pentru gesturi / multi-atingere îmbinate

Învechit:

  • GtkMisc
  • GtkAlignment
  • GtkArrow
  • GdkColor
  • Regiuni de stil
  • suport pentru fișiere .icon
  • gdk_window_flush
  • desen în afara vopselei de început / sfârșit

Majoritatea widgeturilor au fost convertite pentru a utiliza gesturile pe plan intern

Wayland acceptă modul clasic GNOME Shell

3.14.15
Versiune veche, care nu mai este menținută: 3.16 22.03.2015 GDK acceptă redarea ferestrelor folosind OpenGL pentru X11 și Wayland folosind libepoxy

Widgeturi noi:

  • GtkGLArea
  • GtkStackSidebar
  • GtkModelButton
  • GtkPopoverMenu

Derulare revizuită ( bara de derulare ascunsă implicit)

Backend Mir experimental

3.16.7
Versiune veche, care nu mai este menținută: 3.18 23-09-2015 Adăugați o infrastructură de nod CSS

Mai multă reîmprospătare a designului filechooser și o mai bună căutare filechooser

A renunțat la suportul pentru Windows XP

Suport model pentru casetă listă și flux

Defilare cu touchpad cinetic

Gesturi cu touchpad (Wayland)

utilitar gtk-builder-tool

Ferestre numai pentru ieșire

3.18.9
Versiune veche, care nu mai este menținută: 3.20 21.03.2016 Integrarea ulterioară a nodurilor CSS

Mutați glisați și fixați în GDK

Widget nou: GtkShortcutsWindow (afișează comenzile rapide de la tastatură și gesturile unei aplicații)

3.20.10
Versiune veche, care nu mai este menținută: 3.22 21.09.2016 Ultima versiune 3.x

Suportul pentru tablete Wayland este fuzionat, suportul pentru tablete grafice este considerat complet

GTK 3.22 trebuie să fie la fel de rock (și, prin urmare, „plictisitor”) ca GTK 2

pentru 3+ ani
3.22.29
Versiune mai veche, dar încă menținută: 3.24 03.09.2018 3.22 trebuia să fie ultima versiune a seriei GTK 3

Deficiențe de dependență - necesită:

  • libepoxi 1.4
  • pango 1.41

Funcții noi de selectare a fonturilor:

  • permite setarea caracteristicilor fontului OpenType
  • arată exemple pentru caracteristicile fontului OpenType
  • permite selectarea variantelor de font OpenType
  • suport niveluri de detalii pentru selecție

Noi caracteristici Emoji:

  • acceptă un popup de finalizare pentru Emoji
  • plasați comanda rapidă Ctrl-Shift-e

Alte API-uri noi: gdk_window_move_to_rect

Wayland: utilizați memorie partajată anonimă pe FreeBSD

Controlere de evenimente backportate de la GTK 4:

  • GtkEventControllerScroll
  • GtkEventControllerMotion
  • GtkEventControllerKey
  • GtkGestureStylus

Dezaprobați câteva API-uri care au dispărut în GTK 4:

  • focalizați lanțurile în GtkContainer
  • sensibilitate pas cu pas în GtkRange
3.23.0
3.23.1
3.23.2
3.23.3
3.24.0
... 3.24.5
3.24.14
...

3.24.29

Versiune veche, care nu mai este menținută: 3,90 31.03.2017 GTK Scene Graph Kit (GSK) a fuzionat

Eliminați orice API marcat ca depreciat

Dezvoltare grea

  • break API & ABI

Un nou Vulkan -renderer mărește vechiul Cairo -renderer

3.89.1

3.89.2
3.89.4
3.89.5
3.90

Versiune veche, care nu mai este menținută: 3,92 2017-10-18 Deoarece GNOME 3.26 a fost lansat deja pe 13 septembrie 2017, nu a fost bazat pe GTK 3.92.

Instrumentele automate GNU au fost înlocuite cu Meson .

3.91.0

3.91.1
3.91.2
3.92.1

Versiune veche, care nu mai este menținută: 3,94 26.06.2018 3,93
  • GdkScreen, GdkVisual eliminat
  • GdkDeviceManager înlocuit de GdkSeat
  • Manipularea clipboardului este mutată de la GTK la GDK
  • GdkEvent este convertit într-un GObject opac
  • randatorul GL din GSK este complet finalizat și este acum la egalitate cu randatorul Vulkan
  • utilizarea GdkPixbuf în API-uri este redusă
    • iar obiectul GskTexture este mutat în GDK ca GdkTexture, pentru a-și lua locul
  • backend-ul Wayland implementează acum protocolul de decorare KDE pe partea de server
  • Broadway este portat la GSK.

GdkWindow redenumit în GdkSurface

Abstracție nouă pentru conținut desenabil: GdkPaintable

Există suport pentru afișarea conținutului media cu:

  • GtkVideo
  • GtkMediaFile
  • GtkMediaStream
  • GtkMediaControls
3,93
3,94.0
Versiune veche, care nu mai este menținută: 3,96 2019-05-07 Comanda gtk4-builder-tool simplify a câștigat o --3to4opțiune de a converti fișierele ui GTK3 în GTK4; deși cu meniuri AMTK, bare de instrumente sau alte obiecte precum GtkShortcutsWindow sunt create programatic (nu cu un fișier * .ui), ci cu API-uri convenabile.

GtkWidget poate folosi acum un GtkLayoutManager pentru alocarea mărimii

  • managerii de layout pot folosi opțional copiii de layout care dețin proprietăți de layout
  • GtkBinLayout, GtkBoxLayout, GtkGridLayout, GtkFixedLayout și GtkCustomLayout sunt disponibile în prezent
  • în viitor vor apărea mai multe implementări ale managerului de aspect

Tratarea focalizării a fost rescrisă, iar generarea evenimentelor de schimbare a focalizării a fost unificată cu evenimentele de încrucișare

Evenimentele au fost simplificate și sunt folosite doar pentru introducere:

  • evenimentele expuse au fost înlocuite cu un semnal GdkSurface :: render
  • evenimentele de configurare au fost înlocuite cu un semnal GdkSurface :: modificat de dimensiune
  • evenimentele map au fost înlocuite cu o proprietate GdkSurface :: mapped
  • gdk_event_handler_set a fost înlocuit cu un semnal de eveniment GdkSurface ::
  • evenimentele cheie nu mai conțin un șir
  • evenimentele de pe widget-urile nemapate sunt ignorate
3.96.0
Versiune veche, care nu mai este menținută: 3,98 10.02.2020
  • Imbunatatiri ale performantei
  • Glisați și fixați refactorizarea
  • Deplasarea GDK către Wayland
  • Mutări
    • GtkMenu, GtkToolbar și clase similare au fost înlocuite cu GMenu.
  • Adăugări
    • Alegător Emoji
    • Widgeturile text au acum stive de anulare
    • Un nou manager de aspect
3.98.5
Versiune veche, care nu mai este menținută: 3.99.0 31-07-2020
  • A fost introdus succesorul Toolkit-ului pentru accesibilitate (ATK) . Noua abordare va implementa WAI-ARIA (World Wide Web Consortium (W3C) Accessibility Initiative - Accessible Rich Internet Applications).
  • Actualizate anteturile pentru a utiliza tipurile C standard în loc de tipurile GLib
  • Widgeturi noi
  • Remedieri și îmbunătățiri
3.99.4
Versiune veche, care nu mai este menținută: 4.0 16.12.2020 4.0.2
Versiune veche, care nu mai este menținută: 4.2 2021-03-30
Versiune stabilă curentă: 4.4 2021-08-23

Vezi si

  • Decor pe partea clientului
  • Lista seturilor de instrumente widget
  • GDK - GIMP Drawing Kit se află între biblioteca xlib și GTK, gestionând redarea de bază, cum ar fi primitive de desen, grafică raster (bitmap-uri), cursori, fonturi, precum și evenimente de fereastră și funcționalitate drag-and-drop
  • gtkmm - legături C ++ pentru GTK
  • Qt - cadru și set de instrumente pe mai multe platforme
  • Xojo - instrument și cadru de dezvoltare multiplataforma
  • Bibliotecile Enlightenment Foundation (EFL) - set de instrumente widget scrise pentru managerul de ferestre Enlightenment
  • FLTK - un set de instrumente widget ușor, cu platforme multiple , non-native
  • Set de instrumente FOX - un set de instrumente widget rapid, open source, multiplataforma
  • IUP - un set de instrumente multi-platformă pentru construirea interfețelor grafice de utilizator native
  • Ultimate ++
  • Biblioteca de componente vizuale (VCL)
  • Vala - un limbaj de programare orientat pe obiecte, cu un compilator de auto-găzduire, care generează cod C și folosește sistemul GObject.
  • wxWidgets - un set de instrumente GUI pe mai multe platforme al cărui scop este să utilizeze direct API-ul grafic nativ al fiecărei platforme ori de câte ori este posibil.

Referințe

Bibliografie

linkuri externe