Logo Mon Club Elec

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro

PyQt est un framework de développement d’interfaces graphiques pour les applications Python. Il permet aux développeurs de créer des applications riches et interactives avec une interface graphique intuitive et facile à utiliser. Dans cet article, nous allons examiner les principales caractéristiques de PyQt et comment elles peuvent être utilisées pour créer des applications puissantes et intuitives. Nous verrons également comment PyQt peut être utilisé pour créer des applications multiplateformes et comment il peut être intégré à d’autres frameworks et bibliothèques. Enfin, nous verrons comment PyQt peut être utilisé pour créer des applications Web et mobiles.

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro

Premiers pas avec PyQt

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro
http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTIntro

(L’installation est réalisable sous Gnu/Linux (Ubuntu, Raspbian,..), Windows ou Mac)

Et aussi :

A venir… :

  • S’installer pour coder des interfaces graphiques (GUI) en Python + Qt sous MacOsX… en 5 minutes !
  • Utiliser une interface existante pour créer une nouvelle interface en quelques clics !
  • Réutiliser par simple copier/coller des éléments d’interfaces existantes pour créer une nouvelle interface !

Introduction

Coder de « vraies » GUI (interfaces graphiques) simplement…

  • Bien qu’elle soit très intéressante, l’interface Processing, opensource et multiplateforme, facile à utiliser, montre un certain nombre de limites :
    • utilise beaucoup de ressources CPU (repose sur Java) ce qui la rend inutilisable sur de petits systèmes, tel que le Raspberry-Pi
    • ne permet pas de créer facilement des interfaces graphiques (GUI) s’intégrant dans l’environnement graphique du système : les différents widgets graphiques sont émulés par des librairies spécifiques et n’ont pas un aspect « système ».
  • Dès lors, pour pouvoir créer des programmes avec interface graphique, la question d’une alternative à la fois facile et relativement simple à mettre en oeuvre se pose. Tout en gardant bien sûr les très nombreuses possibilités de Processing, notamment 3D avec OpenGL, communication série avec Arduino, communication réseau, traitement d’image avec OpenCV, communication et contrôle du système par programmation
  • Une solution existe qui me paraît tout à fait pertinente : PyQt, association du langage Python et de l’interface graphique multiplateforme Qt.
    • Le langage Python est très puissant et rapide comparativement à Java, dispose de nombreux modules permettant d’utiliser le port série, le réseau, opencv, openGL… et même des librairies scientifiques, etc…
    • L’interface graphique Qt est multiplateforme et permet de créer facilement des applications disposant d’une « vraie » interface graphique, à l’aide notamment d’un utilitaire de design très puissant, Qt Designer. Qt intègre de nombreuses classes et fonctions facilitant l’affichage des images, la gestion des fichiers, etc…
  • Trêve de blabla, place à l’action !

Pour faire simple :

  • La solution que je vous propose ici :
    • utilise Python, langage interprété, de haut niveau, puissant, facile à utiliser et installer, disposant de nombreuses bibliothèques thématiques (réseau, série, calcul scientifique, opengl, opencv, etc…)
    • utilise Qt 4, une bibliothèque graphique multiplateforme, qui s’intègre parfaitement dans l’environnement de bureau utilisé, et qui dispose d’outils très intéressants pour aider au développement, notamment le logiciel Qt Designer qui permet de créer une interface graphique en quelques clics…

Pré-requis

Découvrir le langage Python

  • Nous allons ici utiliser le langage Python. Pourquoi ce langage demanderont certains ?
    • la première raison est que ce langage dit de haut niveau, est peu gourmand en ressources système comparativement à Java
    • il s’agit d’un langage « interprété » : les instructions sont donc exécutées « à la volée » sans compilation préalable :
      • ce qui permet de faire des tests en mode « ligne de commande », ce qui est très pratique pour apprendre
      • et ce qui évite d’avoir à compiler le code avant exécution et permet d’exécuter en direct le code depuis l’éditeur
    • ce langage est très souple en ce qui concerne l’utilisation des types, des boucles, des listes (tableaux de taille variable) et permet de coder en quelques lignes ce qui pourrait être assez complexe avec un autre langage
  • Pour suivre les tutos que je vous propose ici, connaître les bases de la programmation en général (notion de variables, type, classe, boucles, conditions, etc…), et notamment un autre langage (que ce soit Java, le C ou même Arduino) est souhaitable. Nul besoin d’être un expert en Python : connaître les bases fondamentales de ce langage sera cependant utile.
  • Voici un mémo personnel qui fait la correspondance entre le C/C++, le Java et le langage Python pour les situations les plus courantes, ce qui permettra de s’adapter plus facilement à partir d’un langage que l’on connaît : Comparatif simplifié de la syntaxe du Python, du C/C++ et du Java
  • Pour apprendre de façon plus approfondie le langage Python, le plus simple est d’utiliser le cours du site du Zéro, bien fait : http://www.siteduzero.com/tutoriel-3-223267-apprenez-a-programmer-en-python.html

Un système opérationnel

  • Les tutos présentés ici sont axés pour une utilisation sur un système Gnu/Linux, que ce soit un distribution Ubuntu ou encore un Raspberry-Pi avec une Raspbian installée. L’objectif ici est de permettre de réaliser simplement des interfaces graphiques, notamment sur des systèmes de type « embarqué ».
  • Ceci étant, toutes les ressources utilisées (Python, Qt, etc…) sont multi-plateformes et sont à priori transposables facilement sous Mac Os X ou Windows. Les procédures détaillées seront présentées ultérieurement pour ces systèmes.

Ressources utiles

  • La documentation officielle PyQt est ici : http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/classes.html
  • Le « hic » de cette doc complète… c’est que l’on peut s’y noyer lorsque l’on débute alors que seuls quelques méthodes ou signaux sont vraiment utiles. C’est pourquoi je mets progressivement en place une doc simplifiée (ou mémo) des choses vraiment utiles pour un développement de base. C’est ici : Memo PyQt et Memo PyQwt

Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.