gtk-fortran est une bibliothèque permettant de créer des interfaces graphiques GTK en Fortran moderne, ainsi que d’accéder à la bibliothèque généraliste GLib sur laquelle est basée GTK. La dernière version, gtk-fortran 4.2.1, offre des interfaces Fortran à GTK 4.6.2 et GLib 2.72.1, versions actuellement livrées avec la toute nouvelle Fedora 36. Vous pouvez bien sûr utiliser cette version de gtk-fortran avec des versions précédentes de GTK 4, à condition de ne pas appeler de nouvelles fonctions. Elle a été testée sur Linux, MSYS2/Windows 10, macOS et FreeBSD.
Les deux grandes nouveautés qu’apporte cette nouvelle mouture sont l’installation par conda et l’utilisation comme dépendance fpm.
Installation via conda
gtk-fortran peut maintenant être installée via conda (uniquement sous Linux et macOS) :
$ conda install gtk-4-fortran
Après avoir exporté le chemin vers le répertoire pkgconfig/
de l’environnement conda utilisé, on pourra compiler un programme gtk-fortran de la même façon que si la bibliothèque avait été installée dans le système par CMake :
$ export PKG_CONFIG_PATH=/home/osboxes/.conda/envs/fpm/lib/pkgconfig/
$ gfortran julia_pixbuf.f90 $(pkg-config --cflags --libs gtk-4-fortran)
Utilisation comme dépendance fpm
La bibliothèque gtk-fortran peut désormais être utilisée comme une dépendance fpm (Fortran Package Manager), comme expliqué dans le tutoriel 5 "How to use gtk-fortran as a fpm dependency", basé sur l’exemple gtkzero_fpm. En supposant que vous avez déjà installé un compilateur Fortran, fpm et les fichiers de développement de GTK 4 (paquet libgtk-4-dev
dans Ubuntu), construire et exécuter cet exemple devrait être aussi simple que de taper :
$ git clone git@github.com:vmagnin/gtkzero_fpm.git
$ cd gtkzero_fpm
$ fpm run
Une fenêtre vide GTK « Hello World » devrait apparaître à l’écran :
C’est très simple à utiliser, les lignes clés dans le manifeste fpm.toml
de cet exemple étant juste :
[dependencies]
gtk-fortran = { git = "https://github.com/vmagnin/gtk-fortran.git", branch = "gtk4" }
Notez que si vous avez plusieurs projets utilisant gtk-fortran, il peut être préférable de cloner le dépôt gtk-fortran à côté de vos projets et de remplacer dans leurs manifestes fpm.toml
la dépendance git par le chemin local vers gtk-fortran :
[dependencies]
gtk-fortran = { path = "../gtk-fortran" }
Le gestionnaire de paquets Fortran fpm, actuellement disponible en version 0.5.0, simplifie ainsi aussi au maximum l’utilisation de gtk-fortran !
Pour utiliser la bibliothèque de tracé scientifique PLplot avec gtk-fortran, on ajoutera dans le manifeste fpm.toml
la section suivante :
[build]
link = ["plplot", "plplotfortran"]
external-modules = ["plplot"]
et on utilisera l’option --flag
de fpm pour faire appel à pkg-config
:
$ fpm run --flag '$(pkg-config --cflags --libs plplot plplot-fortran)'
Voici ce qu’on pourra obtenir avec l’exemple hl_plplot8e.f90
du projet, tournant ici sous MSYS2/Windows :
Documentation
La documentation Wiki du projet a été mise à jour. Les tutoriels sont désormais, sauf exception, basés sur GTK 4. Seules les pages consacrées à la partie High Level de la bibliothèque restent à actualiser : il me faudra peut-être écrire un script Python, n’ayant pas de trace de l’outil utilisé originellement il y a dix ans pour extraire du code source la doc en commentaires (voir le problème #259). Enfin les quarante exemples disponibles dans les répertoires examples/
et plplot/
constituent une mine pour l’apprentissage.
Vous trouverez en annexes des liens vers des tutoriels gtk-fortran et GTK, ainsi que vers la documentation de GTK (qui a été entièrement remodelée après la sortie de GTK 4) et vers deux forums pour l’entraide.
Aller plus loin
- Tutoriel 1 : My first gtk-fortran application (53 clics)
- Tutoriel 5 : How to use fpm to build a gtk-fortran project (13 clics)
- Tutoriel 3 : How to write a gtk-fortran program also usable without GUI (15 clics)
- A gtk4 tutorial for beginners (23 clics)
- Tutoriels GTK sur la chaîne YouTube de Michael B. (17 clics)
- Nouvelle documentation GTK (19 clics)
- Discourse GNOME (15 clics)
- Forum GTK+ sur Developpez.com (20 clics)
# M'enfin !...
Posté par Tonton Th (Mastodon) . Évalué à 7.
Tseeuu…
s/script Python/programme f95/
: Un peu de dignité, que diable ![^] # Re: M'enfin !...
Posté par vmagnin (site web personnel) . Évalué à 4.
J'ai bien avancé dans mon script Python (58 lignes de code). Plus qu'à finaliser. Mais c'est vrai qu'avec gtk-fortran on a accès à la GLib et donc à ses fonctionnalités pour les expressions régulières :
https://docs.gtk.org/glib/struct.Regex.html
https://github.com/vmagnin/gtk-fortran/blob/gtk4/examples/regex.f90
Mais il faut savoir céder à la facilité, quitte à perdre sa dignité ! ;-)
Je regrette juste de ne pas encore avoir eu le temps de lire et travailler le livre que je me suis acheté sur Raku|Perl 6… Ca a l'air fun la grammaire…
# Documentation High Level mise à jour
Posté par vmagnin (site web personnel) . Évalué à 8.
Script terminé !
La documentation de la partie High Level de gtk-fortran vient d'être mise à jour.
# Commentaire supprimé
Posté par Anonyme . Évalué à -3. Dernière modification le 30 avril 2022 à 19:36.
Ce commentaire a été supprimé par l’équipe de modération.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.