
Créer des applications graphiques en Python avec PyQt5 par Pierre Denis Thibaut Cuvelier 1 Créer des applications graphiques - en Python avec PyQt5 par Pierre Denis, Thibaut Cuvelier ISBN (EPUB) : 978-2-8227-0516-5 Copyright © 2017 Éditions D-BookeR Tous droits réservés Conformément au Code de la propriété intellectuelle, seules les copies ou reproductions strictement réservées à l'usage privé du copiste et non destinées à une utilisation collective ainsi que les analyses et les courtes citations dans un but d'exemple et d'illustration sont autorisées. Tout autre représentation ou reproduction, qu'elle soit intégrale ou partielle, requiert expressément le consentement de l'éditeur (art L 122-4, L 122-5 2 et 3a). Publié par les Éditions D-BookeR, Parc des Rives créatives de l'Escaut, Nouvelle Forge, 80 avenue Roland Moreno, 59410 Anzin www.d-booker.fr [email protected] Les exemples (téléchargeables ou non), sauf indication contraire, sont propriété des auteurs. Couverture : d'après une création de Marie Van Der Marlière (www.marie- graphiste.com) Mise en page : générée sous Calenco avec des XSLT développées par la société NeoDoc (www.neodoc.biz) Date de publication : 20/03/2017 Édition : 1 Version : 1.0 2 À propos des auteurs Pierre Denis Ingénieur civil en informatique, j'ai travaillé plus de 15 ans chez Spacebel, une société belge de développement logiciel dans le domaine spatial. J'ai découvert Python en 1999 et j'ai été immédiatement séduit. Je l'ai d'abord utilisé dans mon travail pour des tâches de support (qualité, documentation, livraison…), puis, progressivement, pour des projets de plus en plus complexes. J'ai notamment participé au développement de plusieurs applications GUI avec vues cartographiques pour des centres de mission satellite ; partant d'ILOG Views, wxPython et Qt, l'environnement de développement a évolué vers PyQt, ce qui s'est révélé extrêmement productif. Dans mes temps libres, je crée des projets open-source en Python (Unum, Lea) et de petites expériences en PyQt, dont un jeu de combat spatial. Thibaut Cuvelier Je me suis d'abord formé à l'informatique en autodidacte, avant d'entreprendre des études d'ingénieur civil en informatique ; je poursuis mes études par un doctorat en mathématiques appliquées à l'université de Liège. Conscient de l'importance du partage des acquis, je contribue activement depuis 2009 au site Developpez.com. De fil en aiguille, j'en suis arrivé à découvrir le langage Python, très pratique pour l'écriture de scripts, puis d'applications plus lourdes. En parallèle, j'ai aussi fait la connaissance de Qt pour le développement d'interfaces graphiques, plus productif encore en Python ou avec Qt Quick. J'apprécie particulièrement ce dernier dans le cas d'applications mobiles. 3 Avant-propos 4 1. Objectifs du livre Ce livre a été pensé pour vous mettre le pied à l'étrier dans le développement d'interfaces graphiques, que ce soit de manière classique (Développement d'une application avec des widgets) ou déclarative (Développement d'une application avec Qt Quick). Ces modules présenteront des interfaces graphiques relativement simples, mais représentatives de la grande majorité des besoins, peu importe votre choix de paradigme. Deux autres modules, plus avancés, complètent ces introductions (Affichage 2D interactif avec les vues graphiques côté classique, Qt Quick avancé côté déclaratif) avec des aspects dynamiques. Si vous avez besoin de dépasser ce stade, vous aurez suffisamment intégré les principes pour exploiter de manière efficace la documentation et le reste de PyQt. Par conséquent, cet ouvrage ne se conçoit pas comme une référence absolue à PyQt (qui serait de toute façon rapidement dépassée), mais bien comme un manuel d'apprentissage pour vous lancer dans le développement d'interfaces graphiques. 5 2. Public visé et prérequis Ce livre s'adresse à toute personne souhaitant programmer des interfaces graphiques en Python, que ce soit pour définir une simple boîte de dialogue ou développer une application plus complexe avec menus, barre d'outils, accès à une base de données, etc. D'une manière générale, nous supposons que vous maîtrisez les notions de programmation orientée objet en Python, notamment l'héritage. Autrement dit, vous débutez avec Qt, mais vous connaissez déjà Python. Vous pouvez lire les chapitres dans l'ordre qui vous convient. Toutefois, certains sont plus complexes et requièrent des notions introduites dans d'autres ; ces prérequis et le niveau de difficulté sont précisés en début de chaque chapitre. Notamment, les deux modules plus avancés se basent sur le contenu des modules précédents : il vaut mieux avoir lu Développement d'une application avec des widgets avant Affichage 2D interactif avec les vues graphiques , avoir lu Développement d'une application avec Qt Quick avant Qt Quick avancé. 6 3. Organisation du livre Les premiers chapitres de l'ouvrage (Préliminaires) portent sur des aspects généraux, non spécifiques à une manière ou l'autre de développer les interfaces graphiques. Il s'agit principalement de vous familiariser avec un environnement de développement intégré Python spécifiquement prévu pour PyQt — eric6. Ensuite, vous pourrez choisir votre voie : une approche impérative par assemblage de composants, des widgets (Développement d'une application avec des widgets) ; une approche déclarative par énonciation de liens entre des composants (Développement d'une application avec Qt Quick). Ces deux modules s'orienteront autour du développement d'une même application de gestion de bibliothèque. Vous pouvez les lire de manière totalement indépendante. La différence entre les deux réside réellement dans la philosophie : l'une ou l'autre approche est plus adaptée selon l'application à développer et la manière de penser des programmeurs. Un autre point important qui les distingue est le langage de programmation : Python est un langage impératif, il est difficile de l'utiliser dans l'approche déclarative ; c'est pour cela que Qt Quick utilise un autre langage, développé spécifiquement pour ce cadre (QML), même s'il est très facile de faire communiquer les deux environnements. Ensuite, les deux modules plus avancés proposent de construire sur ces acquis, afin de réaliser des applications plus dynamiques : soit de manière impérative avec les vues graphiques (Affichage 2D interactif avec les vues graphiques ) : ce cadre permet de réaliser des applications de visualisation présentant un grand nombre d'éléments dynamiques. C'est notamment le cas d'applications d'ingénierie ou de jeux vidéo ; soit de manière déclarative (Qt Quick avancé), avec diverses fonctionnalités pour écrire plus facilement des applications dynamiques, y compris avec du dessin en 2D et des scènes 3D. 7 4. Codes sources des exemples Vous trouverez sur la page du site des éditions D-BookeR consacrée au livre, onglet Compléments, une archive réunissant l'ensemble des codes sources des exemples du livre. Ceux-ci sont classés par projet et chapitre. Toutefois pour vous simplifier l'accès à ces codes au fur et à mesure de votre lecture, nous les avons aussi hébergés sur GitHub dans un dossier dédié. Chaque fois que vous rencontrerez l'icône , un simple clic dessus vous renverra vers le dossier contenant le code complet de l'exemple ou des exemples du chapitre. 8 5. Réglage de la largeur de l'écran Vous trouverez de nombreux exemples de code, formatés dans une police à chasse fixe. Afin d'éviter des retours à la ligne inopportuns à l'intérieur d'une ligne de code, la longueur maximale des lignes de code a été fixée à 70 caractères, une valeur suffisamment basse pour être affichée sur la plupart des supports, tout en étant suffisante pour que le code puisse être correctement formaté. Toutefois, il est possible que sur votre support la largeur maximale affichable soit inférieure à la limite fixée. Le paragraphe test ci-dessous permet de vérifier votre affichage. Il doit tenir sur deux lignes exactement : 0000000000111111111122222222223333333333444444444455555555556666666666 0123456789012345678901234567890123456789012345678901234567890123456789 Si ce n'est pas le cas, regardez si vous pouvez agrandir la taille de la fenêtre, diminuer la taille des marges ou diminuer la taille de la police d'affichage. Sur un téléphone portable, placez-le plutôt en mode paysage. Si vous n'y arrivez pas, ne vous inquiétez pas pour autant, la plupart des lignes de code sont inférieures à 65 caractères. 9 6. Accès aux vidéos La version numérique du livre contient quelques illustrations animées . Si vous lisez ce livre en ligne, elles sont intégrées à votre page et votre navigateur ira chercher de lui-même le format de vidéo qu'il supporte. Si vous lisez une version téléchargée, un clic sur l'image vous redirigera vers la vidéo en ligne au format MP4. Si votre navigateur par défaut ne supporte pas nativement le MP4, modifiez à la main l'extension du fichier dans l'url en remplaçant .mp4 par .webm. Note > Avant de cliquer, assurez-vous que le pointeur de votre souris s'est changé en main. 10 Préliminaires 11 Présentation de PyQt PyQt est la contraction de deux mots : d'un côté, Python (le langage de programmation utilisé) réputé fort simple d'apprentissage ; de l'autre, Qt, un cadriciel extrêmement complet (principalement pour des interfaces graphiques), mais écrit en C++. PyQt sert de couche de liaison entre ces deux mondes et apporte Qt à l'environnement Python. Qt est une bibliothèque multiplateforme, reconnue avant tout pour ses fonctionnalités d'aide à la conception d'interfaces graphiques. Cependant, Qt peut faire beaucoup plus : cette bibliothèque vient avec des modules pour l'accès aux bases de données SQL, un navigateur web complet réutilisable, un système d'aide, des fonctionnalités multimédia. Depuis quelque temps, elle propose de nouvelles fonctionnalités plus intégrées et de plus haut niveau, comme l'accès à des outils de cartographie et de localisation, à la communication sans fil (NFC, Bluetooth), à des graphiques et de la visualisation de données, etc.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages494 Page
-
File Size-