Résolu sur le forum : Borne Wallbox Pulsar Plus 7,4 kW sur abonnement 6 kVA : quel délestage avant accord copro (urgent)Ma panne diagnostiquée — réponse sous 48 h29 €

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

Électroniquemis à jour le 24 avril 2023

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.

Premiers pas avec PyQt

  • 1. Petite intro et quelques explications pour comprendre de quoi on parle…
  • 2. S’installer pour coder des interfaces graphiques (GUI) en Python + Qt sous Gnu/Linux… en 5 minutes ! (10 p.) – GRATUIT
  • 3. Découvrir le langage Python (13 p.) – GRATUIT
  • 4. Découvrir le logiciel de conception graphique QtDesigner et générer le fichier de description de l’interface graphique (16 p.) – GRATUIT
  • 5. Principe général d’écriture d’un programme PyQt à partir d’un fichier généré avec QtDesigner (27 p.) – 0.25€GRATUIT
  • 6.Votre premier programme PyQt : Hello World ! (17 p.) – 0.25€GRATUIT

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

Et aussi :

  • S’installer pour coder des interfaces graphiques (GUI) en Python + Qt sous Windows… en quelques minutes !
  • Vous êtes pressé ? Voici comment utiliser les codes d’un tuto Python+Qt du site en quelques minutes !
  • Développer des applications graphiques avec PyQt sur le RaspberryPi TOP !

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

Donnez votre avis

Soyez le 1er à noter cet article
ou bien laissez un avis détaillé


Partagez cet article maintenant !


Ça ne règle pas votre cas ?

Décrivez la panne sur le forum, avec une photo si vous pouvez : les membres qui ont eu la même répondent, et le sujet reste pour les suivants.

Avatar photoAvatar photoAvatar photoAvatar photoAvatar photoRejoindre les 54 membres — gratuit, 44 pannes résolues

Dans le même tiroir

Réagissez à cet article

La lettre du club

Une lettre par mois, accrochée au panneau

Les sujets du forum résolus dans le mois, un guide, un chiffre qu’on peut vérifier chez soi. Rien d’autre, jamais plus souvent — et on se désabonne d’un clic.

Ce qu’il y a dedans

Votre adresse

Une lettre par mois. Désabonnement en un clic.

Partagez votre réaction