GTK - GTK
Autori originali | Spencer Kimball , Peter Mattis |
---|---|
Sviluppatore/i | Il progetto GNOME , eXperimental Computing Facility (XCF) |
Versione iniziale | 14 aprile 1998 |
Rilascio stabile | 4.4.0 / 23 agosto 2021
|
Rilascio in anteprima | 4.3.1 / 9 giugno 2021
|
Repository | |
Scritto in | C , CSS |
Sistema operativo | Linux , Unix-like , macOS , Windows |
Tipo | Toolkit di widget |
Licenza | LGPLv2.1+ |
Sito web | gtk |
GTK (precedentemente GIMP ToolKit poi GTK+ ) è un toolkit widget multipiattaforma gratuito e open source per la creazione di interfacce utente grafiche (GUI). È concesso in licenza in base ai termini della GNU Lesser General Public License , che consente l'utilizzo sia del software libero che di quello proprietario . È uno dei toolkit più popolari per i sistemi a finestre Wayland e X11 .
Il team GTK rilascia regolarmente nuove versioni. GTK 4 e GTK 3 vengono mantenute, mentre GTK 2 è a fine vita.
Architettura software
La libreria GTK contiene un insieme di elementi di controllo grafici ( widget ); la versione 3.22.16 contiene 186 widget attivi e 36 deprecati. GTK è un toolkit widget orientato agli oggetti scritto nel linguaggio di programmazione C ; utilizza GObject , ovvero il sistema di oggetti GLib , per l'orientamento dell'oggetto. Mentre GTK è principalmente per i sistemi a finestre basati su X11 e Wayland , funziona su altre piattaforme, tra cui Microsoft Windows (interfacciato con l' API di Windows ) e macOS (interfacciato con Quartz ). C'è anche un back-end HTML5 chiamato Broadway .
GTK può essere configurato per cambiare l'aspetto dei widget disegnati; questo viene fatto utilizzando diversi motori di visualizzazione. Esistono diversi motori di visualizzazione che cercano di emulare l'aspetto dei widget nativi sulla piattaforma in uso.
A partire dalla versione 2.8, rilasciata nel 2005, GTK ha iniziato la transizione all'utilizzo di Cairo per eseguire il rendering della maggior parte dei suoi widget di elementi di controllo grafici . Dalla versione 3.0 di GTK, tutto il rendering viene eseguito utilizzando Cairo.
Il 26 gennaio 2018 a DevConf.cz , Matthias Clasen ha fornito una panoramica dello stato attuale dello sviluppo di GTK 4, inclusa una spiegazione di alto livello su come il rendering e l'input funzionavano in GTK 3, quali modifiche sono state apportate in GTK 4 (>3.90 ), e perché. Il 6 febbraio 2019 è stato annunciato che GTK 4 eliminerà il "+" dal nome del progetto.
Kit disegno GTK (GDK)
GDK funge da wrapper per le funzioni di basso livello fornite dai sistemi grafici e di finestre sottostanti.
GDK si trova nella /gdk
directory.
Kit grafico scena GTK (GSK)
GSK è l'API per il rendering e il grafico delle scene per GTK. GSK si trova tra gli elementi di controllo grafici (widget) e il rendering. GSK è stata finalmente fusa nella versione GTK 3.90 rilasciata a marzo 2017.
GSK si trova nella /gsk
directory.
GtkInspector
GtkInspector è stato introdotto con la versione 3.14. GtkInspector può essere invocato solo dopo aver installato il pacchetto di sviluppo libgtk-3-dev / gtk+-devel .
Designer della GUI
Ci sono diversi designer di GUI per GTK. I seguenti progetti sono attivi a partire da luglio 2011:
- Glade , supporta GtkBuilder , che è un formato di descrizione della GUI integrato in GTK.
- Gazpacho , costruttore di GUI per il toolkit GTK scritto in Python
- Crow Designer, si affida al proprio formato GuiXml e alla libreria GuiLoader.
- Stetic , parte di MonoDevelop , orientato verso Gtk# .
- Gambas dalla versione 2.0 su BASIC
- Xojo su Linux
- Lazarus su Linux per impostazione predefinita si interfaccia con GTK 2
GtkBuilder
GtkBuilder consente di progettare le interfacce utente senza scrivere codice. L'interfaccia è descritta in un file Extensible Markup Language (XML), che viene quindi caricato in fase di esecuzione e gli oggetti vengono creati automaticamente. Il Glade Interface Designer consente la creazione dell'interfaccia utente in modo ciò che vedi è ciò che ottieni ( WYSIWYG ). La descrizione dell'interfaccia utente è indipendente dal linguaggio di programmazione utilizzato.
Associazioni di lingua
I collegamenti linguistici sono disponibili per l'utilizzo di GTK da linguaggi diversi dal C, inclusi C++ , Genie , JavaScript , Perl , Python , Vala e altri .
GtkSharp, da non confondere con Gtk#, supporta GTK 3.
Gtk#
Sviluppatore/i | Xamarin |
---|---|
Versione iniziale | 12 marzo 2004 |
Rilascio stabile | 2.12.41 / 22 settembre 2016
|
Rilascio in anteprima | 2.99.3 (per GTK3) / 6 giugno 2014
|
Repository | |
Scritto in | C# , XML , Perl , C |
Sistema operativo | Windows , macOS , Linux |
Tipo | Toolkit di widget |
Licenza | GNU Lesser General Public License |
Sito web | mono-progetto |
Gtk # è un insieme di .NET Framework associazioni per il GTK interfaccia grafica utente (GUI) toolkit e assortiti GNOME librerie . La libreria facilita la creazione di applicazioni grafiche GNOME utilizzando Mono o qualsiasi altro Common Language Runtime (CLR) compatibile . Gtk# è un sistema guidato dagli eventi come qualsiasi altra moderna libreria di finestre in cui ogni widget consente di associare metodi di gestione, che vengono chiamati quando si verificano determinati eventi.
Le applicazioni create utilizzando Gtk# verranno eseguite su molte piattaforme tra cui Linux , Windows e macOS . I pacchetti Mono per Windows includono GTK, Gtk# e un tema nativo per far sembrare le applicazioni come applicazioni Windows native. A partire da Mono 1.9, l'esecuzione di applicazioni Gtk# su macOS non richiede più l'esecuzione di un server X11 .
Glade Interface Designer può essere utilizzato con i collegamenti Glade# per progettare facilmente applicazioni GUI. Un designer di GUI chiamato Stetic è integrato con l' ambiente di sviluppo integrato (IDE) MonoDevelop .
Oltre a supportare lo stack standard GTK/GNOME di strumenti di sviluppo, l' assembly gtk-dotnet.dll fornisce un bridge per utilizzare le funzionalità disponibili sullo stack .NET. A questo punto questo include la funzionalità per usare System.Drawing per disegnare su un widget.
A partire da settembre 2020, il supporto di Gtk# per Gtk3 rimane nella fase di anteprima e sono stati fondati progetti fork, come GtkSharp , per fornire il supporto completo di Gtk3 per C# e altri linguaggi CLI. La mancanza di una versione rilasciata di Gtk# con supporto per Gtk3 è stata citata come motivo per rimuovere il lettore multimediale Banshee in Ubuntu 12.04.
Sviluppo
GTK è sviluppato principalmente da The GNOME Project , che sviluppa anche la piattaforma di sviluppo GNOME e l'ambiente desktop GNOME.
Lo sviluppo di GTK è gestito in modo approssimativo. La discussione avviene principalmente su diverse mailing list pubbliche. Gli sviluppatori e gli utenti di GNOME si riuniscono all'incontro annuale GUADEC della conferenza europea degli utenti e degli sviluppatori di GNOME per discutere lo stato attuale e la direzione futura di GNOME. GNOME incorpora standard e programmi da freedesktop.org per interagire meglio con altri desktop.
GTK è scritto principalmente in C . Sono disponibili molte associazioni linguistiche .
Il 1 settembre 2016 un post sul blog di sviluppo GTK indicava, tra le altre cose, il futuro schema di numerazione di GTK. La versione GTK 3.22 dell'autunno 2016 sarà l'ultima versione 3.x. La versione 3.24 è stata introdotta nell'autunno 2018 con il ritardo di GTK 4. Dopodiché tutte le risorse passeranno alla serie di sviluppo GTK 4 con i nomi di versione 3.90, 3.92, ecc. Anche quando la serie 4.x entra in sviluppo, le applicazioni importanti continuano a utilizzare GTK 2.x e non sono stati portati su 3.22. Per quanto riguarda il futuro del software legacy che utilizza GTK , non esisteva un progetto collettivo per portare il software GTK 2.x su 3.22. La versione 3.24 è in supporto a lungo termine e la base attuale e futura di programmi come gimp 3.0 e Inkscape 1.0. Quindi per gli sviluppatori è la scelta stabile GTK 3.24 con bugfix o GTK 4 con modifiche e nuove funzionalità nello sviluppo futuro.
Costruisci l'automazione
GTK (e GNOME, GLib, ecc.) in precedenza utilizzavano GNU Build System (denominato Autotools) come sistema di automazione di build preferito.
Dal 14 agosto 2017, il ramo principale di GTK è stato creato con Meson e i file di sistema di build di Autotools sono stati eliminati.
Critica
La critica più comune a GTK è la mancanza di compatibilità con le versioni precedenti nei principali aggiornamenti, in particolare nell'interfaccia di programmazione dell'applicazione (API) e nei temi.
Le interruzioni di compatibilità tra le versioni minori durante il ciclo di sviluppo di GTK 3.x sono state spiegate da Benjamin Otte come dovute a forti pressioni per innovare, come fornire le funzionalità che gli utenti moderni si aspettano e supportare il protocollo del server di visualizzazione Wayland sempre più influente . Con il rilascio di GTK 4, la pressione della necessità di innovare sarà stata allentata e l'equilibrio tra stabilità e innovazione si sposterà verso la stabilità. Allo stesso modo, le recenti modifiche ai temi hanno lo scopo specifico di migliorare e stabilizzare quella parte dell'API, il che significa che alcuni investimenti ora dovrebbero essere ricompensati in seguito.
- Dirk Hohndel, sviluppatore di Subsurface e membro dell'Open-Source Technology Center di Intel , ha criticato gli sviluppatori di GTK per essere stati irritanti e per aver ignorato la maggior parte delle richieste della comunità.
- Hong Jen Yee, sviluppatore di LXDE (la cui versione GTK è stata abbandonata e tutti gli sforzi si sono concentrati sulla porta Qt ), ha espresso disprezzo per la versione 3 dei cambiamenti radicali dell'API del toolkit GTK e un maggiore utilizzo della memoria e portato PCMan File Manager (PCManFM) a Qt . PCManFM è stato sviluppato con un GTK e con un backend Qt allo stesso tempo.
- Il lettore musicale Audacious è passato a Qt nella versione 3.6. Le ragioni dichiarate dagli sviluppatori per questo includono una transizione alle decorazioni delle finestre lato client, che secondo loro fanno sembrare l'applicazione " GNOME -y e fuori posto".
- Wireshark è passato a Qt perché non ha una buona esperienza con il supporto multipiattaforma di GTK.
Utilizzo
Applicazioni
Alcune applicazioni degne di nota che utilizzano o una volta utilizzavano GTK come toolkit widget includono:
- GNOME Core Applications – come parte dell'ambiente desktop GNOME , sviluppato di concerto con GTK stesso.
- AbiWord – Elaboratore di testi (3.0+ con GTK+ 3)
- Anjuta – Ambiente di sviluppo integrato (IDE) (GTK+ 3)
- Ardour – Workstation audio digitale
- Chromium – Browser Web (fino alla versione 34, sostituito da Aura nella versione 35+)
- Ekiga (precedentemente GnomeMeeting) – Applicazione VoIP e videoconferenza
- GNU Emacs può usare GTK quando è in esecuzione su X. (GTK+ 3 con 24.2+)
- Evolution – Gestore delle informazioni personali (GTK+ 3 con 3.x, GTK 4 con versione 40.0)
- gconfig – Utilità di configurazione dei sorgenti del kernel Linux .
- Geany : un leggero editor di testo multipiattaforma IDE e GTK basato su Scintilla . (Versione 1.37.1 basata su GTK+ 3.24.23, ultima con supporto di GTK+ 2.20+)
- GIMP – Editor di grafica raster (3.0 con GTK+ 3, anteprima 2.99.4 di 3.0)
- Gnumeric – Applicazione per fogli di calcolo (1.12.x con GTK+ 3)
- Gramps – Software genealogico (4.0+ con GTK+ 3)
- Inkscape – Editor di grafica vettoriale per SVG (1.0.x con GTK+ 3)
- LiVES – Editor video (GTK+ 2.16+ o 3)
- Midori – Browser web minimalista che utilizza GTKWebKit come motore di rendering e GTK come widget toolkit (GTK+ 3)
- Pidgin – Applicazione di messaggistica istantanea
Ambienti desktop
Diversi ambienti desktop utilizzano GTK come toolkit per i widget.
Attuale
- GNOME , basato su GTK, il che significa che i programmi nativi di GNOME usano GTK
- Budgie , costruito da zero per il successore di SolusOS, Solus Operating System
- Cinnamon , un fork di GNOME 3 che usa GTK versione 3
- MATE , un fork di GNOME 2 che utilizza GTK 3 dalla versione 1.18
- Xfce , basato su GTK 3 dalla versione 4.14
- Pantheon utilizza esclusivamente GTK 3, essendo sviluppato da un sistema operativo elementare
- Sugar , un ambiente desktop per l'istruzione primaria giovanile , che utilizza GTK, in particolare PyGTK
- KDE , sebbene basato su Qt , ha l'integrazione con programmi e temi scritti in GTK dalla versione 4.2
- Phosh , un'interfaccia utente mobile progettata per PureOS
Inattivo
- Unity , l'ex ambiente desktop predefinito di Ubuntu
- LXDE (Lightweight X11 Desktop Environment) è basato su GTK 2
- Access Linux Platform (successore della piattaforma Palm OS PDA )
- Consort, la modalità fallback di GNOME 3.4 – fork di SolusOS
- GPE , l'ambiente palmare GPE
- ROX Desktop , un desktop leggero, con funzionalità dalla GUI di RISC OS
Varie
I programmi GTK possono essere eseguiti su ambienti desktop basati su X11 e Wayland, o gestori di finestre anche non realizzati con GTK, purché siano installate le librerie necessarie; questo include macOS se è installato X11.app . GTK può essere eseguito anche su Microsoft Windows , dove è utilizzato da alcune popolari applicazioni multipiattaforma come Pidgin e GIMP. wxWidgets , un toolkit GUI multipiattaforma, utilizza GTK su Linux per impostazione predefinita. Altri port includono DirectFB (usato dall'installatore Debian , per esempio) e ncurses .
Gestori di finestre
I seguenti gestori di finestre utilizzano GTK:
- Aewm
- Dopo il passaggio
- dilettante
- Consorzio
- IceWM
- Marco
- metacity
- Focaccina
- mormorare
- Pesce sega
- Wmg
- Xfwm
GtkSourceView
Per l' evidenziazione della sintassi c'è GtkSourceView , "widget di modifica del codice sorgente". GtkSourceView è gestito da GNOME separatamente da GTK come libreria: gtksourceview . Ci sono piani per rinominare in gsv.
GtkSpell
GtkSpell è una libreria separata da GTK. GtkSpell dipende da GTK ed Enchant . Enchant è un wrapper per ispell, hunspell e così via, il motore/software del correttore ortografico . GtkSpell utilizza il widget GtkTextView di GTK, per evidenziare le parole errate e offrire la sostituzione.
Esempio
La documentazione è disponibile qui:
Le seguenti regali di codice a GTK grafica ciao-mondo di programma nel linguaggio di programmazione C . Questo programma ha una finestra con il titolo "Hello, world!" e un'etichetta con testo simile.
// 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);
}
È necessario installare prima le librerie in Debian o in derivati:
$ sudo apt-get install libgtk-4-dev
Usando pkg-config in una shell Unix , questo codice può essere compilato con il seguente comando:
$ cc -Wall $(pkg-config --cflags --libs gtk4) helloworld.c -o helloworld
Invoca il programma:
$ ./helloworld
Storia
Linux
GTK è stato originariamente progettato e utilizzato nel GNU Image Manipulation Program (GIMP) in sostituzione del toolkit Motif ; a un certo punto Peter Mattis è rimasto deluso da Motif e ha iniziato a scrivere il proprio toolkit GUI chiamato GIMP toolkit e aveva sostituito con successo Motif con la versione 0.60 di GIMP. Infine GTK è stato riscritto per essere orientato agli oggetti ed è stato rinominato GTK+. Questo è stato utilizzato per la prima volta nella versione 0.99 di GIMP. GTK è stato successivamente adottato per la manutenzione dalla GNOME Foundation , che lo utilizza nell'ambiente desktop GNOME.
La serie di versioni GTK 2.0.0 ha introdotto nuove funzionalità che includono una migliore resa del testo tramite Pango , un nuovo motore di temi , una migliore accessibilità tramite Accessibility Toolkit , transizione a Unicode tramite stringhe UTF-8 e un'API più flessibile. A partire dalla versione 2.8, GTK 2 dipende dalla libreria grafica Cairo per il rendering della grafica vettoriale.
La versione 3.0.0 di GTK includeva la gestione dei dispositivi di input rivista, il supporto per i temi scritti con sintassi simile a CSS e la capacità di ricevere informazioni su altre applicazioni GTK aperte.
Il "+" è stato abbandonato tornando semplicemente a "GTK" nel febbraio 2019 durante un Hackathon .
Mac OS
Con Quartz -Backend GTK è disponibile in macOS .
finestre
- Dopo GTK 2.24.10 e 3.6.4 Lo sviluppo di Windows con Installer è stato chiuso da Gnome. L'installazione di MSYS2 su Windows è un buon modo per utilizzare GTK effettivo.
- GTK 2.24.10 e 3.6.4 sono disponibili in Internet, ma molto difettosi e limitati rispetto alle versioni attuali.
- Una versione per Windows a 64 bit è preparata da Tom Schoonjans con 2.24.33 (attuale come Linux) e 3.24.24 (reale come Linux) da gennaio 2021 disponibili.
- L'aggiornamento dei creativi autunnali di Windows 10 include il sottosistema Windows per Linux (WSL). Con distribuzioni Linux come Ubuntu o Debian disponibili da Windows Store e un server X come Xming o VcXsvr, migliaia di programmi come GTK 2 o 3 possono essere eseguiti con supporto X o terminale.
OpenVMS
HP ha dichiarato che il loro obiettivo era quello di unire le necessarie modifiche OpenVMS nel flusso di sviluppo della versione 1.3 di GTK, tuttavia ciò non si è mai concretizzato. L'ultima versione di GTK per OpenVMS è la versione 1.2.10.
GTK 4
Una delle novità cardinali implementate durante il ciclo di sviluppo di GTK 4 (cioè GTK 3.92, ecc.) è stata la delega di funzionalità ad oggetti ausiliari invece di codificarla nelle classi base fornite da GTK.
- la gestione degli eventi dai gestori di segnale descritti da GtkWidget è delegata ai controller di eventi
- il rendering è delegato agli oggetti GtkSnapshot
- il meccanismo di layout da GtkWidget è delegato a GtkLayoutManager
Nel 2018-gennaio-26 a DevConf.cz Matthias Clasen ha fornito una panoramica dello stato attuale dello sviluppo di GTK 4, inclusa una spiegazione di alto livello su come funzionavano il rendering e l'input in GTK 3, quali modifiche venivano apportate a GTK 4, e le ragioni di tali cambiamenti. Sono stati forniti anche esempi di cose che sono diventate possibili con GTK 4.
Rilasci
Leggenda:
Vecchia versione
Versione precedente, ancora mantenuta
Ultima versione
Ultima versione di anteprima
Rilascio futuro
|
|||||||
Serie di rilascio | Versione iniziale | Principali miglioramenti | Ultima versione minore | ||||
---|---|---|---|---|---|---|---|
1.0 | 1998-04-13 | Prima versione stabile | 1.0.6 | ||||
1.2 | 1999-02-25 | Nuovi widget :
|
1.2.10 | ||||
2.0 | 2002-03-11 |
GObject
Supporto generale per UTF-8 |
2.0.9 | ||||
2.2 | 2002-12-22 | Supporto multitesta | 2.2.4 | ||||
2.4 | 2004-03-16 | Nuovi widget:
|
2.4.14 | ||||
2.6 | 2004-12-16 | Nuovi widget:
L'ultimo a supportare Windows 98 / Me |
2.6.10 | ||||
2.8 | 2005-08-13 | La maggior parte dei widget sono resi da Cairo | 2.8.20 | ||||
2.10 | 2006-07-03 | Nuovi widget:
Supporto per la stampa: GtkPrintOperation |
2.10.14 | ||||
2.12 | 2007-09-14 | GtkBuilder | 2.12.12 | ||||
2.14 | 2008-09-04 | Supporto per il caricamento di JPEG 2000 | 2.14.7 | ||||
2.16 | 2009-03-13 | Nuovo widget: GtkOrientable
Avviso di blocco maiuscole nell'inserimento della password Miglioramenti su GtkScale, GtkStatusIcon, GtkFileChooser |
2.16.6 | ||||
2.18 | 2009-09-23 | Nuovo widget: GtkInfoBar
Miglioramento nella selezione dei file, stampa Per rimuovere gran parte dell'IPC necessario tra l'applicazione X11 e il server X11, GDK viene riscritto (principalmente da Alexander Larsson) per utilizzare "finestre lato client", ovvero la GdkWindow, che ogni widget deve avere, ora appartiene al client |
2.18.9 | ||||
2.20 | 2010-03-23 | Nuovi widget:
Miglioramento su selezione file, gestione della tastiera, GDK I dati di introspezione sono ora inclusi in GTK |
2.20.1 | ||||
2.22 | 2010-09-23 |
GdkPixbuf spostato in un modulo separato
La maggior parte dei disegni GDK si basa sul Cairo Molti dati interni sono ora privati e possono essere sigillati in preparazione a GTK 3 |
2.22.1 | ||||
2.24 | 2011-01-30 | Nuovo widget: GtkComboBoxText
Il backend di stampa di CUPS può inviare lavori di stampa come PDF GtkBuilder ha ottenuto il supporto per i tag di testo e i pulsanti degli strumenti del menu e sono state aggiunte molte correzioni di annotazioni di introspezione |
2.24.32 (2018-01-08) |
||||
3.0 | 2011-02-10 | Lo sviluppo e la progettazione della versione GTK 3 del toolkit sono iniziati nel febbraio 2009 durante il GTK Theming Hackfest tenutosi a Dublino
Completato principalmente Project Ridley
Tutto il rendering viene eseguito utilizzando Cairo GDK è diventato più indipendente da X11 XInput2, l'API del tema si basa su Cascading Style Sheets (CSS), peggiorando le prestazioni ottenibili per frame rate a 60 Hz |
3.0.12 | ||||
3.2 | 2011-09-25 | Nuovi widget:
Nuova finestra di dialogo per la selezione dei caratteri Nuovi backend sperimentali: |
3.2.4 | ||||
3.4 | 2012-03-26 | Supporto menu in GtkApplication
Un nuovo selezionatore di colori Aggiunto supporto per dispositivi touch Aggiunto supporto per lo scorrimento fluido GtkScrolledWindow eseguirà lo scorrimento cinetico con i dispositivi touch Il supporto macOS è migliorato Questa è la prima versione di GTK 3 che funziona bene su Windows Il backend di Wayland è aggiornato alla versione corrente di Wayland I pulsanti di selezione hanno ricevuto un nuovo look Accessibilità: il supporto accessibile treeview è stato riscritto Supporto per temi CSS più completo |
3.4.4 | ||||
3.6 | 2012-09-24 | Nuovi widget:
Pulsanti di rotazione verticale Animazioni CSS, ombre sfocate Supporto per dissolvenze incrociate e transizioni nei temi |
3.6.5 | ||||
3.8 | 2013-03-25 | Supporto stabile Wayland 1.0
Supporto per il server broadwayd Tema migliorato Migliore gestione della geometria Miglioramenti al tocco Supporto con il window manager per il protocollo di sincronizzazione dei frame GdkFrameClock aggiunto |
3.8.9 | ||||
3.10 | 2013-09-23 | Nuovi widget:
Supporto per Wayland 1.2
Aggiunto:
RIMOSSO:
Voci di menu a strappo, oltre a molte impostazioni GTK |
3.10.9 | ||||
3.12 | 2014-03-25 | Decorazioni lato cliente
Supporto per Wayland 1.5 Nuovo widget: GtkPopover (un'alternativa a menu e finestre di dialogo) |
3.12.2 | ||||
3.14 | 2014-09-22 |
Introduzione di GtkInspector (una copia di gtkparasite)
Supporto migliorato per i gesti / multi-touch uniti Obsoleto:
La maggior parte dei widget convertiti per utilizzare i gesti internamente Wayland supporta la modalità classica di GNOME Shell |
3.14.15 | ||||
3.16 | 2015-03-22 | GDK supporta il rendering di finestre utilizzando OpenGL per X11 e Wayland utilizzando libepoxy
Nuovi widget:
Scorrimento revisionato ( barra di scorrimento nascosta per impostazione predefinita) Backend sperimentale Mir |
3.16.7 | ||||
3.18 | 2015-09-23 | Aggiungi l'infrastruttura del nodo CSS
Più aggiornamento del design di FileChooser e migliore ricerca di FileChooser Supporto per Windows XP interrotto Supporto del modello per elenco e casella di flusso Scorrimento cinetico del touchpad Gesti del touchpad (Wayland) utilità gtk-builder-tool Finestre di sola uscita |
3.18.9 | ||||
3.20 | 2016-03-21 | Ulteriore integrazione dei nodi CSS
Sposta trascina e rilascia in basso su GDK Nuovo widget: GtkShortcutsWindow (mostra le scorciatoie da tastiera e i gesti di un'applicazione) |
3.20.10 | ||||
3.22 | 2016-09-21 | Ultima versione 3.x
Il supporto per tablet Wayland viene unito, il supporto per tavolette grafiche è considerato funzione completa GTK 3.22 deve essere stabile (e quindi "noioso") come GTK 2 |
per 3+ anni 3.22.29 |
||||
3.24 | 2018-09-03 | 3.22 doveva essere l'ultima versione della serie GTK 3
Dossi di dipendenza: richiedono:
Nuove funzionalità di selezione dei caratteri:
Nuove funzionalità Emoji:
Altre nuove API: gdk_window_move_to_rect Wayland: usa la memoria condivisa anonima su FreeBSD Controller di eventi con backport di GTK 4:
Deprecare alcune API che sono state eliminate in GTK 4:
|
3.23.0 3.23.1 3.23.2 3.23.3 3.24.0 … 3.24.5 3.24.14 … |
||||
3.90 | 2017-03-31 |
GTK Scene Graph Kit (GSK) unito
Rimuovi qualsiasi API contrassegnata come deprecata Sviluppo pesante
|
3.89.1 |
||||
3.92 | 2017-10-18 | Poiché GNOME 3.26 è stato rilasciato già il 13 settembre 2017, non era basato su GTK 3.92.
GNU autotools è stato sostituito con Meson . |
3.91.0 |
||||
3.94 | 2018-06-26 | 3.93
GdkWindow rinominato in GdkSurface Nuova astrazione per i contenuti disegnabili: GdkPaintable È disponibile il supporto per la visualizzazione di contenuti multimediali con:
|
3.93 3.94.0 |
||||
3.96 | 2019-05-07 | Il comando gtk4-builder-tool simplify ha ottenuto --3to4un'opzione per convertire i file dell'interfaccia utente GTK3 in GTK4; anche se con i menu AMTK, le barre degli strumenti o altri oggetti come GtkShortcutsWindow vengono creati in modo programmatico (non con un file *.ui), ma con comode API.
GtkWidget ora può utilizzare un GtkLayoutManager per l'allocazione delle dimensioni
La gestione del focus è stata riscritta e la generazione di eventi di cambio focus è stata unificata con gli eventi incrociati Gli eventi sono stati semplificati e vengono utilizzati solo per l'input:
|
3.96.0 | ||||
3.98 | 2020-02-10 |
|
3.98.5 | ||||
3.99.0 | 2020-07-31 |
|
3.99.4 | ||||
4.0 | 2020-12-16 | 4.0.2 | |||||
4.2 | 2021-03-30 | ||||||
4.4 | 2021-08-23 |
Guarda anche
- Decorazione lato cliente
- Elenco dei toolkit widget
- GDK : il GIMP Drawing Kit si trova tra la xlib e la libreria GTK, gestendo il rendering di base come le primitive di disegno, la grafica raster (bitmap), i cursori, i caratteri, nonché gli eventi della finestra e la funzionalità di trascinamento della selezione
- gtkmm – collegamenti C++ per GTK
- Qt – framework e toolkit multipiattaforma
- Xojo – strumento e framework di sviluppo multipiattaforma
- Enlightenment Foundation Libraries (EFL) – toolkit widget scritto per il gestore di finestre Enlightenment
- FLTK : un toolkit di widget leggero, multipiattaforma e non nativo
- FOX toolkit : un toolkit widget veloce, open source e multipiattaforma
- IUP : un toolkit multipiattaforma per la creazione di interfacce utente grafiche native
- Ultimate++
- Libreria dei componenti visivi (VCL)
- Vala – un linguaggio di programmazione orientato agli oggetti con un compilatore self-hosting che genera codice C e utilizza il sistema GObject.
- wxWidgets - un toolkit GUI multipiattaforma il cui obiettivo è utilizzare direttamente l'API grafica nativa di ciascuna piattaforma quando possibile.
Riferimenti
Bibliografia
- Krause, Andrew (23 aprile 2007), Fondamenti di sviluppo GTK+ (1a ed.), Apress , ISBN 978-1-59059-793-4
- Wright, Peter (15 maggio 2000), Inizio GTK+ e GNOME (1a ed.), Peer Information , ISBN 978-1-86100-381-2
- Logan, Syd (6 settembre 2001), Gtk+ Programming in C (1a ed.), Prentice Hall , ISBN 978-0-13-014264-1
link esterno