Kib's Memo

Revue du livre Rapid GUI Programming with Python and Qt

Article numéro 15 écrit le lundi 19 novembre 2007 à 22 h 35 min dans les catégories : Qt4 Python
  • Auteur : Mark Summerfield
  • Editeur: Prentice Hall
  • Public visé: tout développeur Python, même débutant
  • Langue: Anglais
  • Nombre de pages: 640
  • Prix: 35,94 euros (livraison gratuite)
PyQt book cover

Mark Summerfield déjà co-auteur du célèbre livre C++ GUI Programming with Qt 4 (traduit en Français aux éditions Pearson Education) nous livre un nouvel opus sur la librairie Qt4 mais dédiée cette fois-ci au language Python.

Parlons de la qualité du livre lui-même : une belle couverture rigide sur laquelle figure l'image du satellite Hubble en orbite autour de la Terre. Le sens ? Python est utilisé par la NASA pour calibrer et analyser les données recueillies par celui-ci. Que ce soit le papier, la qualité d'impression ou les multiples diagrammes, il n'y a rien à redire si ce n'est qu'on aimerait voir ce genre d'initiatives plus souvent chez nos éditeurs, surtout eû égard au prix pratiqué.

Passons maintenant au contenu proprement dit, qui se divise en quatre parties distinctes (cinq en fait si l'on compte les divers appendices qui représentent à eux seuls presque une centaine de pages) :

  • Programmation avec Python;
  • Programmation d'interfaces graphiques niveau basique;
  • Programmation d'interfaces graphiques niveau intermédiaire;
  • Programmation d'interfaces graphiques niveau avancé;

On peut s'interroger sur le bien fondé de la première partie, en effet il serait étonnant qu'une personne ne connaissant pas le language se risque à acheter un tel livre. Et pourtant Marc réussi là un véritable tour de force : on balaye les fonctionnalités du language par la pratique, avec des exemples vraiment très pertinents. J'avoue même avoir appris certains concepts dont je ne soupçonnais pas l'existence, sans doute faute d'en avoir eû un réèl besoin. Les fonctions partielles par exemple ont un intérêt certain dans la suite de l'ouvrage. De la même façon, vous pourrez y voir de multiples références au PEPs (Python Enhancement Proposals : les fonctionnalités à venir de Python).

Si l'Anglais peut rebuter au départ, surtout lorsqu'il est technique, on se surprend rapidement à lire un thème donné sans avoir recours au dictionnaire (je précise que je n'ai aucune thèse en Anglais). Le style se veut simple et efficace, sans être simpliste.

Autant vous rassurer tout de suite, le contenu des trois parties consacrées au vif du sujet, la programmation d'interfaces graphiques n'est pas du tout un plagiat du livre précédent :C++ GUI Programming with Qt 4. On y aborde évidemment plus ou moins les mêmes sujets, mais un réèl travail a été fourni sur les nouvelles fonctionnalités apparues depuis la version 4.2 de Qt4. Citons par exemple un chapitre entier consacré à l'architecture du Graphics view : un réèl plus par rapport au livre précédent.

Les exemples sont abondants, collent à la pratique et vous pourrez en outre les récupérez gratuitement sur la page que Marc à consacré à son ouvrage. Sachez du reste qu'elle est remise à jour régulièrement, afin d'améliorer encore certains exemples et de proposer un errata.

Citons aussi quelques petits cadeaux vraiment bien venus : des utilitaires écrits par l'auteur afin de gérer au mieux vos projets PyQt4.

A chaque fois, on vous place en situation de développeur et vous serez amené à résoudre quelques exercices proposés en fin de chapitre.

J'ai beaucoup apprécié l'éventail d'alternatives à un problème donné. Comment imprimer le contenu d'un QTextEdit par exemple ? Marc vous propose trois méthodes abondamment commentées, de la plus simple à la plus complexe, à vous de choisir ensuite en fonction de vos besoins, de votre niveau ou du temps que vous allez y passer.

Vous l'aurez donc compris, j'ai été plus que séduis par ce livre. On ne passe pas son temps à comparer Qt à tel autre toolkit comme le font certains ouvrages (d'ailleurs, serait-ce vraiment la peine ?), on pratique avant tout, et les repères ne manquent pas: index abondant, diagrammes de classes, éventail visuel de tous les widgets.

Des critiques ? Un chapitre de C++ GUI Programming with Qt 4 était consacré au développement de plugins avec C++, il est absent ici, comme dans tout livre sur Python consacré à ce vaste sujet. Il est vrai que les possibilités dynamiques qu'offrent Python permettent de pallier à ce problème assez facilement, mais encore faut-il mettre la main à la pâte. S'il est absent, c'est à mon avis surtout parce qu'il n'existe pas de recette tout faite, mais j'aurai au moins aimé disséquer un exemple simple sur le sujet.

Enfin contrairement à beaucoup d'autres ouvrages, Rapid GUI Programming with Python and Qt se distingue aussi par la façon dont il a été écrit. Pas de LaTeX, de Scribus, de QuarkXPress ni même de InDesign ici, mais une alternative originale et légère: Lout .

Commentaires (Voir)