Pages

Affichage des articles dont le libellé est Tkinter. Afficher tous les articles
Affichage des articles dont le libellé est Tkinter. Afficher tous les articles

mardi 11 mai 2021

Installation et première utilisation de Pygubu, utilitaire de création d'IHM avec Tkinter

### Article en cours de rédaction, susceptible d'être modifié/amélioré###


 Sur ce blog, il y a quelques exemples d'IHM sous Python réalisé avec Tkinter (natif à Python). 

Cet article va montrer comment créer une IHM avec un assistant, sans "trop coder". Cet assistant s'appelle Pugubu. Il permet de placer des widget sur une interface et de les configurer assez précisément puis, à l'instar de PyQt, il va générer un fichier "ui" ou un fichier complet python autonome.

Voila à quoi ressemble l'interface de Pygubu :



C'est austère, minimaliste, mais efficace !

L'installation se fait en lignes de commandes :


Pour exécuter Pygubu-designer, il suffit simplement de trouver le répertoire "script" de son installation Python, dans mon cas, c'est ici :

Je conseille fortement de faire un clic-droit "envoyer vers" et "créer un raccourci sur le bureau"...;-)


Créons maintenant notre première IHM (très basique !) :

Si maintenant j'ouvre le fichier généré dans un éditeur, comme Thonny, voilà ce que j'obtiens :


Si j'exécute le script :

Cela fonctionne !!!!
Mais...
A l'ouverture, Thonny ne reconnait pas l'encodage ! Il faut préciser ISO-8859-1. VSCode, lui, ne pose pas de question, mais l'exécution est étrange. En effet, il y a un souci avec l'accent de "première" dans le label. Je vais contacter l'auteur afin d'en savoir davantage.. Mais en modifiant l'accent, qui est mal encode, tout fonctionne. 
Cet outil est toujours en cours de développement et est mis à jour régulièrement... on peut l'excuser !
La suite à suivre....😉




samedi 8 mai 2021

Réaliser une interface graphique permettant de tracer le gain d'un filtre passe-bas avec Python

### Article en cours de rédaction, susceptible d'être modifié/amélioré (surtout amélioré ;-) )###


 Je vous propose ici une application pour Windows (en exécutable) mais transférable sur toutes les plateformes avec le fichier source .py qui permet de tracer le gain (Bode) d'un filtre passe-bas du premier ordre (RC).

L'application permet de calculer la fréquence de coupure à -3dB, d'afficher la courbe sur une échelle semi-logarithmique et de sauvegarder l'image horodatée.

Au lancement, nous avons cette interface :


Après avoir saisi les valeur du résistor et et du condensateur, on peut soit cliquer sur "calcul FC" qui affiche la fréquence de coupure à -3 dB, soit cliquer sur "Tracer gain" pour afficher la courbe :


ou :

Vous pouvez saisir un nom sans extension dans la case ci-dessus et cliquer sur "sauvegarder 'png'. Cela génèrera un fichier image identique à l'affichage et dont le nom sera horodaté :


Le fichier image est enregistré là où se trouve l'exécutable :


Bien entendu, des améliorations sont à apporter tant du point de vue technique (courbe de phase, choix passe-haut...) qu'esthétique (ce n'est toujours pas mon point fort 😆)

Pour la réalisation, j'ai utilisé Python, Matplotlib et Tkinter. L'exécutable est compilé avec auto-py-to-exe (aussi sur ce blog). L'IDE est Visual Studio Code.

Extrait du code :



Le fichier source est documenté afin de comprendre le fonctionnement global.
Je ne détaille pas davantage ici le fonctionnement et le principe, tout est dans le fichier source.


Si vous voulez le fichier source, pas de souci, il suffit de m'envoyer un courriel gentil 😇



mardi 6 avril 2021

Créer une distribution (fenêtre graphique) exécutable sous Python

 Le dernier article publié montrait la possibilité de créer un exécutable à partir d'un projet Python. Ce dernier était composé d'un fichier principal et de deux classes annexes (ici).

Cet article va maintenant proposer la création d'un exécutable mais d'une application graphique. Le script de base est celui-ci :

ou
Comme pour l'article précédent, on utilise auto-py-to-exe
Les chemins sont à personnaliser, bien entendu 😉

Après avoir tout configuré, il suffit de cliquer sur CONVERT et la magie s'opère... Cependant, il faut noter que l'opération est plus longue, il y a plus de modules à gérer..

Petit aperçu pour éviter les doutes :
J'avais prévenu, c'est long... mais tellement efficace !

Résultat :


Attention, comme pour l'article précédent, le fichier va être analysé par votre antivirus, mais pas d'inquiétude, ça passe !
Et comme précédemment, le fichier unique est lourd ! Mais cela est normal, il embarque tout le matériel nécessaire pour fonctionner.

Cadeau : l'exécutable à tester... 




lundi 1 avril 2019

Lire une trame GPS avec Python et Tkinter juste en connectant un module bas coût

J'ai réalisé un programme avec un GUI sous Tkinter qui permet de lire une trame GPS NMEA (en particulier la GGA).
Ce programme donne :

  • La trame reçue,
  • Les coordonnées DMS (Degrés, minutes, secondes)
  • L'altitude
  • Le nombre de signaux satellites
De plus, on peut obtenir la carte, avec différentes échelles, correspondante à la géolocalisation.

Détail :



On retrouve ici les mêmes fonctionnalités que le programme réalisé sous Processing déjà présenté sur ce blog...
Le matériel est le même, seule la plateforme de programmation change...

Le programme sera détaillé et téléchargeable dans un prochain article.

lundi 4 février 2019

Récupérer une donnée sur un port USB et l'afficher avec Python et Tkinter

Il peut être intéressant de lire des données depuis un port série afin de les traiter par la suite. Ici, je montre qu'il est possible de le faire, assez simplement (après avoir un peu cherché, je l'avoue). Après, il est possible d'afficher n'importe quoi, dès l'instant que l'on sait ce que l'on envoie.

Dans cet exemple, une Arduino Uno envoie toutes les deux secondes la température issue d'un DHT11. La valeur est envoyée sous forme de chaîne de caractères. De plus, le programme reconnait automatiquement le bon port COM ! Pas besoin de le saisir à la main...

Écran de départ :
 Port COM trouvé, attente d'une connexion :
 Deux secondes après la connexion, les premières données arrivent :
En vidéo :



Pour récupérer le fichier source, merci de m'adresser un mail...

Par contre, je suis gentil, je fournis l'exécutable ;-)



Bien entendu, si rien n'est connecté au port COM, un message s'affiche :




Comme d'habitude, les images proviennent de Pixabay




dimanche 3 février 2019

Créer un mélangeur de couleurs avec Python et Tkinter

Dans cet article, vous allez découvrir l'utilisation des "slider" et des "canvas" en réalisant un mélangeur de couleur. Oui, je sais, il existe déjà tout fait dans Tkinter et partout sur Internet. Mais c'est bien aussi de le faire soi-même.

Toujours aussi beau ce que je fais ;-)


Le code :

Initialisation et création de la fenêtre :

Les widgets et la boucle principale :

En fonctionnement :


Téléchargement du fichier source :


Téléchargement de l'exécutable :



Je ne détaille pas plus le code, pour toute question, envoyez-moi un courriel....









mardi 29 janvier 2019

Convertisseur décimal-binaire-hexadécimal avec Python et Tkinter

Cet article montre un autre GUI assez simple, un convertisseur décimal-binaire-hexadécimal écrit en Python et utilisant Tkinter :

Un appui sur un bouton DEL efface une ligne (oui, je sais, j'aurais pu en mettre un seul qui efface tout...) et le bouton convertir lance la conversion dans le sens :

Décimal ⇰ Binaire ⇰ Hexadécimal
Binaire ⇰ Décimal ⇰ Hexadécimal
Hexadécimal ⇰ Décimal ⇰ Binaire

⇩⇩⇩

Le programme :

Import, création des fonctions et de la fenêtre :
Placement des widgets :

Téléchargement du fichier :



Téléchargement de l'exécutable :





Créer son premier GUI avec Python et Tkinter

Voici le premier article sur Python !
Pour écrire les programmes, j'utilise EduPython (Académie d'Amiens).

Mais vous pouvez lancer le script à partir de Python natif :


Si vous voulez vous lancer dans la création de votre premier Graphic User Interface, vous êtes au bon endroit...

Voici ce que je propose pour commencer petit et facile :
Encore une fois, je précise qu'il y a plusieurs façons de faire et d'obtenir la même chose, mais le but est de découvrir. L'efficacité arrivera plus tard....

Le programme :


Le programme est, je pense, assez détaillé pour comprendre ce qu'il se passe.


Pour télécharger le fichier :



Cerise sur le gâteau, la version exécutable, sans avoir besoin de Python sur son PC :

Décompresser le fichier et lancer CC3d.exe