GTK (Programmbliothek) – Wikipedia

before-content-x4

Gtk (plus tôt Gtk + , [5] Gimp-toolkit ) est un outil GUI gratuit sous le LGPL. GTK contient de nombreux contrôles avec lesquels les interfaces utilisateur graphiques (GUI) peuvent être créées pour les logiciels.

after-content-x4

La bibliothèque a été initialement développée par Peter Mattis, Spencer Kimball et Josh MacDonald pour créer une interface utilisateur pour le programme graphique GIMP en dehors du motif.
En attendant, GTK est utilisé par les environnements de bureau GNOME, XFCE, LXDE, Cinnamon, Pantheon et Budgie ainsi qu’une variété d’autres applications et, en plus de QT, est le kit d’outils GUI le plus réussi pour le système X Window.

GTK est écrit dans le langage de programmation C. La première version de GTK + est sortie en avril 1998. [2] GTK + contenait des routines auxiliaires pour résoudre les tâches de programmation de base, par exemple pour enregistrer diverses données. Ce sont tout à fait en temps pour le programmeur, en particulier dans le développement répété des programmes. Par exemple, les premières versions de GTK + contenaient des structures de données pour les listes enchaînées, les arbres binaires ou les cordes de «croissance». De plus, un système a été développé avec GTK + pour programmer des objets – orientés vers l’objet en C. Ces SIDS se sont également révélées utiles pour les programmes sans surface graphique et ont donc été externalisés plus tard à une bibliothèque distincte qui Bibliothèque GLIB des fonctions C . Le système orienté objet était dans le Bouffon -Les méthodes de dessin liées au système externalisées dans la bibliothèque GDK (kit de dessin GTK +). Ce dernier permet à GTK + de pouvoir s’exécuter de manière identique sur Windows, le système de fenêtres X et MacOS sur les plates-formes.

Gtk + 2 [ Modifier | Modifier le texte source ]]

La version GTK + 2 a reçu de nouvelles fonctions améliorées pour rendre du texte à l’aide du Noir -Bibliothek, un nouveau moteur à thème, une API plus flexible et une nouvelle bibliothèque ( ATK ) Pour améliorer l’accessibilité de la trousse à outils pour les personnes handicapées, avec lesquelles des logiciels de lecture, des outils d’élargissement et des dispositifs d’entrée alternatifs peuvent être traités, par exemple. GTK + 2 n’est pas compatible avec GTK + 1, de sorte que les applications existantes devaient être portées.

Depuis la version 2.8, GTK + utilise la bibliothèque basée sur le vecteur CAIRO, qui utilise l’accélération matérielle si possible. GTK + 2.99.3 du 1er février 2011 est la dernière version de la 2e série X. [6]

Gtk + 3 [ Modifier | Modifier le texte source ]]

La version 3.0 est publiée le 10 février 2011. [7] De nombreuses fonctions classées en tant que dépassée ont été supprimées et les interfaces existantes ont été améliorées. GTK + 3 n’est pas compatible à la baisse avec GTK + 2.x. Cependant, les bibliothèques des deux versions peuvent être installées en parallèle.

Entre autres choses, GTK + 3.0 contient une nouvelle interface pour dessiner des widgets, qui est désormais entièrement basé sur le Caire, un moteur de thémot (Multi-points) Et des icônes symboliques qui peuvent changer leur couleur selon la condition. Les structures internes ont été séparées et cachées de l’interface publique, de sorte qu’il sera plus facile à l’avenir de faire des modifications sans avoir à se produire. De plus, plusieurs backends GDK sont pris en charge en même temps dans la même bibliothèque. [8] Jusqu’à présent, diverses bibliothèques ont été nécessaires.

after-content-x4

Avec GTK + 3.2, deux nouveaux backends ont été introduits: un pour le serveur d’affichage Wayland et un nom de cuisson HTML5 appelé Broadway , avec lesquels les applications GTK + peuvent être utilisées à distance dans le navigateur via le réseau. [9]

GTK + 3.4 prend en charge le multitouch et le parchemin doux et est également disponible pour Windows. [dix]

GTK + 3.6 prend en charge les animations CSS et brouille les ombres. La version 3.6.4 est la dernière version officielle de Windows 32 bits et 64 bits. [11]

GTK + 3,8 prend en charge le Wayland nativement dans des parties importantes. [douzième]

GTK + 3.10 prend en charge Wayland expérimentalement et améliore l’affichage des moniteurs à haute résolution. [13]

GTK + 3.12 introduit Popover. Ces bulles de la bande dessinée peuvent être utilisées comme aide. Le soutien de Wayland a été amélioré. [14]

GTK + 3.14 prend en charge les gestes multi-touch. [15] [16]

GTK + 3.16 prend en charge le rendu des fenêtres via OpenGL. Aussi avec le nouvel élément de contrôle Gtkglarea Permet aux objets 3D de s’intégrer directement dans les surfaces du programme. [17] [18]

GTK + 3.18 soutient officiellement Wayland comme base de Gnome 3.18, le successeur du système de fenêtres X. [19]

GTK + 3.20 intègre le contrôle d’orthographe avec GSPELL et améliore le theming CSS. [20]

GTK + 3.22 est la dernière version stable de GTK + 3 et est maintenue en version LTS pendant trois ans. La principale fonctionnalité de cette version est les nouveaux portails FlatPac pour des installations simples de logiciels. [21]

GTK + 3.24 a été annoncé en juin 2018 comme la toute dernière version de GTK + 3, puisque GTK 4.0 a été retardé. Actuellement en 2021, voici 3.24.28. La version 3.24 est désormais également cultivée comme une version LTS à long terme. [22]

Avec le instable – Les séries 3.9x sont préparées GTK 4.0. En mars 2017, version 3.90 Kit de graphique de scène (GSK) ajouté. Il a implémenté un graphique de scène et assure la synthèse d’image. En février 2019, il a été annoncé que GTK 4.0 supprimera le signe plus (“+”) du composant du nom. [5]

Gtk 4 [ Modifier | Modifier le texte source ]]

Wayland et Volcano sont plus pris en charge dans GTK 4. Plus d’accessibilité a également été réalisée. GNOME 40 est l’homologue coordonné sur la page Linux. [23] Fedora 34 sera la première grande variante Linux que GTK 4 avec Gnome 40 sera présentée en avril 2021. [24]

GTK 4.0 a été officiellement présenté le 16 décembre 2020. Les points forts sont des améliorations du rendu OpenGL et un nouveau rendu volcanique avec un support GPU plus rapide, ainsi qu’une meilleure prise en charge macOS et Windows en plus de bien d’autres choses. [25]

GTK 4.2 a été introduit le 30 mars 2021 avec un nouveau NGL OpenGL-Render par défaut. [26]

macos [ Modifier | Modifier le texte source ]]

À propos de la cuisson du quartz, [27] Un portage du système de fenêtre X peut être utilisé pour macOS. [28] Avec GTK 4.0, le support de MacOS a été considérablement amélioré.

les fenêtres [ Modifier | Modifier le texte source ]]

  • Selon GTK 2.24.10 et 3.6.4, le développement de Windows avec l’installateur de GNOME a été interrompu. Il est recommandé d’installer le système de package MSYS2 à partir de Gnome sous Windows. [29] MSYS2 prend déjà en charge GTK 4. [30]
  • GTK 2.24.10 et 3.6.4 sont toujours disponibles sur Internet, mais sont considérablement plus stressés par les erreurs par rapport aux versions actuelles de Linux. [trente et un] [32]
  • Pour Windows 64 bits (en janvier 2021), le travail de Tom Schoonjans est désormais disponible 2.24.33 (actuellement comme Linux) et 3.24.24 (actuellement et Linux). [33]
  • Avec Windows 10 Mise à jour des créateurs d’automne GTK 3 est désormais également disponible dans le WSL. Les instructions pour l’installation de programmes avec Windows sont disponibles dans la communauté GTK. [34] GTK 4 est disponible pour la version 20H2 et 21H1 dans le WSL disponible sur la distribution Linux sélectionnée.

La façon classique de programmer avec GTK est de définir d’abord les propriétés des éléments graphiques utilisés, puis de les regrouper et de les relier à certaines routines de traitement des événements (un événement possible serait, par exemple, de cliquer sur un bouton). Cependant, il existe également des outils de conception graphique pour les surfaces GTK telles que Glade ou celle contenue dans Monodevelop Stétique Cela peut vous faire économiser les deux premières étapes, GTK se développant pour étendre les compétences en prototypage et permettre d’apporter des modifications à la surface d’un programme sans avoir à modifier le code source du logiciel.

La présentation de ce programme

Un programme Hello World typique, qui montre la fenêtre à droite, pourrait ressembler à ceci:

#inclure   / * Fonction inversée - appelée lorsque le bouton a été cliqué * //  annuler  on_button_clicked  ( Gtkbutton  * bouton ,  gpointer  données )  {   G_print  ( "Knopf '% s' cliqué! n " ,  gtk_button_get_label  ( bouton ));   gtk_main_quit  ();  / * Termine le programme * /  }  int main (int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *button;

  /* GTK+ initialisieren */
  gtk_init (&argc, &argv);

  /* Hauptfenster erstellen, Titel setzen, Rahmenabstand setzen */
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title (GTK_WINDOW (window), "Hallo Welt!");
  gtk_container_set_border_width (GTK_CONTAINER (window), 10);

  /* Schaltfläche erstellen und dem Fenster hinzufügen */
  button = gtk_button_new_with_label ("Hallo Wikipedia!");
  gtk_container_add (GTK_CONTAINER (window), button);

  /* Signale mit Rückruffunktionen verbinden */
  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
  g_signal_connect (button, "clicked", G_CALLBACK (on_button_clicked), NULL);

  /* Fenster und all seine Unterelemente anzeigen */
  gtk_widget_show_all (window);

  /* Haupt-Ereignisschleife starten */
  gtk_main ();

  return 0;
}

La routine principale est la première principal Crée une nouvelle fenêtre et son titre et la distance du cadre aux éléments intérieurs. Ensuite, un bouton est généré avec l’étiquette correspondante et inséré dans la fenêtre. Une fenêtre en est toujours une aussi Récipient , un élément, les autres éléments de contrôle ( Widgets ).

Alors ça va détruire -Signal, dont le widget de fenêtre z. B. créé lors de la cliquetis sur son bouton “Fermer”, avec la fonction GTK gtk_main_quit Lié qui termine le programme. Le bouton précédemment créé est également appelé avec une fonction de retour appelée on_button_clicked Connecté, qui est implémenté ci-dessus. Pour connecter les signaux avec les fonctions RUFF Back, les fonctions GLIB sont utilisées directement, leurs transactions de nom sont utilisées g_ au lieu de gtk_ est.

Étant donné que tous les contrôles sont initialement invisibles, ils doivent être rendus visibles, individuellement ou tous ensemble, en appelant gtk_widget_show_all . Avec l’appel de gtk_main La boucle de l’événement principal est enfin démarrée, qui attend des événements, puis les distribuait aux signaux correspondants.

La fonction qui est effectuée lors du clic sur le bouton est examinée comme des exemples d’utilisation de l’élément de contrôle d’appel en lisant l’étiquette du bouton et en sortie dans la sortie standard. Le programme est ensuite terminé. Le deuxième paramètre données La fonction de retour peut contenir toutes les données spécifiées lors de la connexion. Dans cet exemple, cependant, seule la valeur est là NUL , Donc rien.

Le programme d’échantillon est appelé avec l’appel de GCC GTKHELLO.C -O GTKHELLO `PKG-CONFIG GTK + -3.0 --cflags --libs` Compilé dans le dossier dans lequel se trouve le fichier.

Étant donné que GTK est une bibliothèque C pure, elle peut simplement être connectée à de nombreux autres langages de programmation. Dans le cas des langages de programmation orientés objet, l’utilisation des gobjects est éliminée, généralement des objets GTK tels que les objets natifs du langage de programmation peuvent y être utilisés. Le langage de programmation Vala utilise directement GOBject comme système d’objets et ne nécessite donc pas de bibliothèque de termes pour la connexion du langage.

langage de programmation Nom de la connexion Exemples de programmes
C ++ gtkmm Inkscape, Solang, gardé, gnote
Python Pygtk (jusqu’à GTK 2.24.0) [35] Openshot, gpodder, ubuntu tweak
Pygobject (AB GTK 3.0.0) [35] Pivi, Lollypop, Gnome Music, Meld
C # (mono) Gtk # Tomboy, F-Spot, Bansee, Pinta, Monodevelop, GBRAINY
Verser Shotwell, Geary, Corebird, OS élémentaire, Libunity
Javascrip GJs Coque de gnome, cartes de gnome, polari
Disponible, mais si bien moins souvent utilisé:
Il y a GTKA
Lisp commun CL-GTK2 [36]
D gtkd [37] Tilix
Freebasic Gladetobac [38] Data2app, [39] GTK + tabac [40]
Frontran GTK-FORTRAN [41]
Aller Go-gtk [42]
Haskell Gtk2hs
Java Java Gnome Split
Julia Gtk.jl
Objectif c Coregtk [43]
Ocaml Lablgtk
Pascal LCL Lazare
Perler gtk2-perl [44] Slimrat, odot, obturateur
Php Php-gtk [45] Suite de test Phoronix
Raquette Gui drracket
Rubis Ruby-gnome2 Alexandrie
Rouiller GTK-RS [quarante-six] systemd-manager [47]
Tcl Gnocl

L’apparition de la trousse d’outils est largement configurable par l’utilisateur. Il existe différents thèmes à choisir.

Clearlooks [ Modifier | Modifier le texte source ]]

Exemple de Clearlook 2.20

GTK utilisé de 2005 à 2014 Clearlooks thème ALS. [48]

Reprise [ Modifier | Modifier le texte source ]]

Est depuis la mi-2014 Reprise La nouvelle norme de GTK. [49]

Les environnements de bureau Gnome, Cinnamon, Mate, XFCE, LXDE, Pantheon du système d’exploitation élémentaire et du bureau ROX se construisent sur GTK eux-mêmes, ce qui signifie que leurs gestionnaires de fenêtres ont accédé à GTK lors du dessin des éléments de fenêtre et les programmes associés à GTK ont été développés.

GTK n’est pas seulement limité à ce bureau; Chaque programme GTK peut être effectué dans tout autre environnement de bureau, tel que KDE ou CDE, à condition que les bibliothèques GTK soient installées sur le système. Afin d’améliorer l’intégration optique dans les ordinateurs de bureau basés sur QT (par exemple KDE), il y a, parmi. GTK-QT. [50] GTK est également disponible pour Windows et MacOS (natif / x11) et permet d’écrire des applications qui peuvent être portées relativement facilement entre Unix, Windows et MacOS.

  1. Le projet GTK +: Équipe. Récupéré le 16 octobre 2011 (Anglais).
  2. un b Index de /public/gimp/gtk/v1.0. Récupéré le 11 août 2014 .
  3. 4.8.3 . 22 décembre 2022 (consulté le 22 décembre 2022).
  4. Le projet Open Source GTK sur Open Hub: Langues Page . Dans: Hub ouvert . (Consulté le 18 juillet 2018).
  5. un b Emmanuele Bassi: Renommez le projet à “GTK”. Dans: GNOME MAILLING. 6 février 2019, consulté le 7 février 2019 (Anglais).
  6. https://ftp.fau.de/gnome/sources/gtk+/2.99/gtk+-2.99.3.changes
  7. GTK + 3.0.0 libéré. Récupéré le 16 octobre 2011 (Anglais).
  8. Plusieurs backends pour GTK +. Récupéré le 16 octobre 2011 (Anglais).
  9. Démonstration des Html5 Broadway Backends. Récupéré le 16 octobre 2011 (Anglais).
  10. https://www.heii
  11. https://www.heise.de/newsticker/meldung/neue-versionen-von-gtk-glib-und-clutter-1716414.html
  12. Heise en ligne: GTK + 3.8 Bringt Wayland Support. Consulté le 4 décembre 2020 .
  13. Heise en ligne: GTK + 3.10 avec un soutien amélioré de Wayland. Consulté le 4 décembre 2020 .
  14. Thorsten Leemhuis: Vu: GNOME 3.12. Consulté le 4 décembre 2020 .
  15. Dr Oliver Diedrich: Linux. Consulté le 4 décembre 2020 .
  16. Heise en ligne: GUADEC: Soutien Wayland pour Gnome. Consulté le 4 décembre 2020 .
  17. GNOME 3.16 Partage. Consulté le 4 décembre 2020 .
  18. Heise en ligne: Linux Desktop: New Gnome montre des nouvelles ci-dessus. Consulté le 4 décembre 2020 .
  19. Heise en ligne: Linux Desktop Gnome 3.18 avec prise en charge de Google Drive. Consulté le 4 décembre 2020 .
  20. Heise en ligne: GUI-TOOLKIT GTK + 3,20 Améliorez la théorie du DAS CSS. Consulté le 4 décembre 2020 .
  21. Heise en ligne: GUI-TOOLKIT GTK + 3.22 apporte un portail Flatpak. Consulté le 4 décembre 2020 .
  22. https://www.phonix.com/scan.php?page=news_item&px=gtk-3.24-coming-this-fall
  23. https://www.heise.de/news/gnome-toolkit-fuer-gui-gtk-4-0-erscheint-nach-4-jahren-dhren-strunderneert-4990565.html
  24. https://www.computerbase.de/2021-03/gnome-40-release-candate-erschienen/
  25. https://www.phonix.com/scan.php?page=news_item&px=gtk-4.0-libéré
  26. https://www.phoronix.com/scan.php?page=news_item&px=gtk-4.2-Selon
  27. Projets / GTK / OSX – Wiki Gnome! Consulté le 4 décembre 2020 .
  28. https://www.gtk.org/download/macos.php
  29. https://www.gtk.org/download/windows.php
  30. https://packages.msys2.org/base/mingw-w64-gtk4
  31. GTK + pour l’environnement d’exécution Windows. Consulté le 4 décembre 2020 (Anglais).
  32. Gtk +. Consulté le 4 décembre 2020 .
  33. Tom Schoonjans: tschoonj / gtk-for-windows-runtime-environnement-installer. 2 décembre 2020, consulté le 4 décembre 2020 .
  34. Sous-système Windows pour Linux: Installation du WSL et configuration de Gnome sous Windows 10. Consulté le 4 décembre 2020 .
  35. un b [Annonce] Pygtk 2.24.0. 8. avril 2011, Récupéré le 15 octobre 2011 (Anglais).
  36. CL-GTK2 IM Cliki. Récupéré le 1er avril 2015 (Anglais).
  37. gtkd. Récupéré le 15 octobre 2011 (Anglais).
  38. Glatetobac. Récupéré le 15 octobre 2011 (Anglais).
  39. Data2app. Récupéré le 15 octobre 2011 (Anglais).
  40. GTK + tabac. Récupéré le 15 octobre 2011 (Anglais).
  41. GTK-FORTRAN. Récupéré le 15 octobre 2011 (Anglais).
  42. Go-gtk. Consulté le 6 avril 2012 (Anglais).
  43. CoreEgtk. Consulté le 27 mars 2020 (Anglais).
  44. gtk-perl. Récupéré le 1er juillet 2017 (Anglais).
  45. PHP-GTK. Consulté le 2 août 2022 (Anglais).
  46. GTK-RS. Consulté le 20 décembre 2016 (Anglais).
  47. Systemd-Manager. Récupéré le 11 décembre 2020 (Anglais).
  48. Progrès du thème par défaut , 28 février 2005
  49. Un nouveau thème par défaut pour GTK + , 13. juin 2014
  50. GTK-QT-MENSINE. Consulté le 17 novembre 2012 (Anglais).
after-content-x4