Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
atelier20230316-python-gui [2023/03/17 18:43] – tbruyere | atelier20230316-python-gui [2023/03/17 19:42] (Version actuelle) – tbruyere |
---|
* QT | * QT |
* Kivy | * Kivy |
| * Fet + Flutter(google) |
* PySimpleGUI | * PySimpleGUI |
| |
| |
''une API orientée objet et développée en C++, conjointement par The Qt Company et Qt Project. Qt offre des composants d'interface graphique '' wikipedia | ''une API orientée objet et développée en C++, conjointement par The Qt Company et Qt Project. Qt offre des composants d'interface graphique '' wikipedia |
| |
| <note tip>La licence est semi libre</note> |
| |
===== Kivy ===== | ===== Kivy ===== |
| |
''Kivy est une bibliothèque libre et open source pour Python, utile pour créer des applications tactiles pourvues d'une interface utilisateur naturelle. Cette bibliothèque fonctionne sur Android, iOS, GNU/Linux, OS X et Windows. Elle est distribuée gratuitement et sous licence MIT. '' wikipedia | ''Kivy est une bibliothèque libre et open source pour Python, utile pour créer des applications tactiles pourvues d'une interface utilisateur naturelle. Cette bibliothèque fonctionne sur Android, iOS, GNU/Linux, OS X et Windows. Elle est distribuée gratuitement et sous licence MIT. '' wikipedia |
| |
| ===== Flet ===== |
| |
| Flet est un framework qui permet de créer des applications Web, de bureau et mobiles multi-utilisateurs interactives dans votre langue préférée sans expérience préalable en développement frontend. |
| |
| Vous créez une interface utilisateur pour votre programme avec des contrôles Flet basés sur Flutter de Google. |
| |
===== Cas particulier de PySimpleGUI ===== | ===== Cas particulier de PySimpleGUI ===== |
===== GTK et les conteneurs ===== | ===== GTK et les conteneurs ===== |
| |
GTK+ organise les widgets de manière hiérarchique, en utilisant des conteneurs. Ils sont invisibles pour l'utilisateur final et sont insérés dans une fenêtre ou placés les uns dans les autres pour mettre en page les composants. Il existe deux types de conteneurs : les conteneurs à enfant unique, qui sont tous des descendants de Gtk.Bin, et les conteneurs à enfants multiples, qui sont des descendants de Gtk.Container. Les plus couramment utilisés sont les boîtes verticales ou horizontales (Gtk.Box) et les grilles (Gtk.Grid). | GTK+ organise les widgets de manière hiérarchique, en utilisant des conteneurs. Ils sont invisibles pour l'utilisateur final et sont insérés dans une fenêtre ou placés les uns dans les autres pour mettre en page les composants. |
| |
https://python-gtk-3-tutorial.readthedocs.io/en/latest/layout.html | https://python-gtk-3-tutorial.readthedocs.io/en/latest/layout.html |
win.show_all() | win.show_all() |
Gtk.main() | Gtk.main() |
| </code> |
| |
| ===== GTK Glade ===== |
| |
| Glade est un outil interactif de conception d'interface graphique GTK. Il prend en charge toute la partie de gestion/génération de l'interface pour permettre au développeur de se concentrer sur le code « utile ». Glade enregistre les interfaces graphiques en générant des fichiers XML. wikipedia |
| |
| ==== Exemple Glade ==== |
| |
| <code python> |
| #!/usr/bin/env python3 |
| # coding: utf-8 |
| |
| from gi.repository import Gtk |
| |
| def when_button_is_clicked(label): |
| ''' |
| Quand le bouton est cliqué |
| ''' |
| label.set_text('Hello world!') |
| |
| |
| builder = Gtk.Builder() |
| builder.add_from_file('hello.glade') # Rentrez évidemment votre fichier, pas le miens! |
| |
| window = builder.get_object('main_window') |
| # Peut se faire dans Glade mais je préfère le faire ici, à vous de voir |
| window.connect('delete-event', Gtk.main_quit) |
| |
| # Le handler |
| handler = {'on_clicked': when_button_is_clicked} |
| builder.connect_signals(handler) |
| |
| window.show_all() |
| Gtk.main() |
| |
</code> | </code> |
| |
* https://zestedesavoir.com/tutoriels/870/des-interfaces-graphiques-en-python-et-gtk/1446_decouverte/5775_le-positionnement-grace-aux-layouts/ | * https://zestedesavoir.com/tutoriels/870/des-interfaces-graphiques-en-python-et-gtk/1446_decouverte/5775_le-positionnement-grace-aux-layouts/ |
* http://hmalherbe.fr/thalesm/gestclasse/documents/Premiere_NSI/Projets/Calculatrice_programmeur/calculatrice_programmeur.html | * http://hmalherbe.fr/thalesm/gestclasse/documents/Premiere_NSI/Projets/Calculatrice_programmeur/calculatrice_programmeur.html |
| * https://zestedesavoir.com/tutoriels/870/des-interfaces-graphiques-en-python-et-gtk/1456_utilisation-avancee/5778_prise-en-main-de-glade/ |
| * https://kivy.org/doc/stable/examples/index.html |
| * https://ressources.labomedia.org/kivy_les_fichiers_kv |
| * https://github.com/kivy/kivy |
| * https://github.com/kivymd/KivyMD |
| * https://flet.dev/ |
| * https://flet.dev/docs/guides/python/getting-started |
| |