Les meilleurs livres Qt
8 livres et 13 critiques, dernière mise à jour le 28 novembre 2014 , note moyenne : 4.8
Les critiques des meilleurs livres sur Qt
- Maîtrisez Qt 5 - Guide de développement d’applications professionnelles
- Créer des applications avec Qt 5 - Les essentiels
- Advanced Qt Programming - Creating Great Software with C++ and Qt 4
- Qt for Symbian
- C++ GUI Programming with Qt 4 - Second Edition
- The Book of Qt 4 - The Art of Building Qt Applications
- Qt 4 et C++ - Programmation d'interfaces GUI
- C++ GUI Programming With Qt 4
Maîtrisez Qt 5
Guide de développement d’applications professionnelles
Résumé de l'éditeur
Le livre a été conçu pour entrer progressivement dans les profondeurs de Qt. Étape par étape vous comprendrez le modèle objet de Qt et la programmation événementielle pour structurer vos applications et atteindre très vite des objectifs complexes. Lorsque vous maîtriserez ces fondamentaux vous approfondirez les bibliothèques de composants en parcourant tous les modules de Qt : le module réseau (QtNetwork), le module SQL (QtSql), les modules graphiques 2D et 3D (QtGui), les modules de composants d'interface graphique et multimédia (QtWidgets et QtMultimedia).
Les derniers chapitres vous permettront de rendre concret cet ensemble en l'appliquant au travail quotidien d'un développeur sérieux: la testabilité du code, qui est une réelle problématique d'entreprise, et le packaging des applications, pour leur diffusion sur tous les systèmes d'exploitation.
Les concepts présentés dans cet ouvrage sont illustrés par des exemples dont le code source est téléchargeable sur le site www.editions-eni.fr.
Édition : ENI - 450 pages, 1re édition, 14 mai 2014
ISBN10 : 2746089211 - ISBN13 : 9782746089211
- Introduction
- L'environnement de développement
- Le modèle « event-driven »
- Anatomie d'une application
- QtCore et fondations
- QtNetwork
- QtSql
- QtGui
- QtWidgets
- QtMultimedia
- Les modules graphiques et web
- QtTest - qualité du code
- Traduction d’une application
- Publication d'une application
- Techniques d'optimisation
Bien que les copies d'écran soient prises sur un système OS X, l'auteur explique aussi ce qu'il faut pour les autres systèmes, soit Windows et Linux. Notamment, par exemple, pour l'installation de Qt ou pour la publication de son application. Ceci est fort agréable, car n'étant pas du tout un utilisateur de Mac, cela m'aurait beaucoup handicapé de ne pas avoir cette diversité.
Pour ce qui est du contenu, on sent que l'auteur veut amener son lecteur petit à petit, étape par étape, à la compréhension de Qt et ainsi lui permettre de se perfectionner, si besoin est, en sachant exactement où chercher et comment le faire. Autre petite chose, tout est mis en relation avec Qt Creator, l'EDI pour Qt, ce qui est un très bon point, car on apprend à s'en servir, et ce, en même temps que Qt.
Malgré tout il y a quelques petites choses négatives à mon goût, notamment deux points : le manque d'un chapitre sur QML et sur la partie mobile. Sachant que ce sont deux très grosses nouveautés de cette version 5 de Qt, c'est un peu dommage de ne pas les voir dans cet ouvrage. Néanmoins, cela reste un très bon livre que je recommande fortement à toute personne désireuse d'apprendre Qt.
Le chapitre le plus détaillé de « Maîtrisez Qt 5 » est sans doute celui sur le module Qt Core et fondations. En effet, l'auteur a pris le temps d'insérer tout ce qu'il faut dans ce chapitre : la structure des objets de Qt, les signaux et les slots, la synchronisation des algorithmes, les threads, les pointeurs, la classe QString, etc. En plus des explications fournies sur la classe QString, le livre finit par une optimisation du code avec les classes QByteArray et QStringRef. Le module Qt Core est la base même du développement applicatif avec Qt. Maîtrisez cette partie de Qt et le reste sera simple à assimiler. Au niveau du chapitre sur Qt GUI, vous pourrez découvrir le rendu 2D (les classes QPainter, QPainterEngine, QImage, QPixmap, QPainterDevice et leur arborescence) et une courte introduction du rendu 3D avec OpenGL. Le chapitre sur Qt Widgets donne tout le nécessaire pour réaliser facilement et rapidement son interface graphique avec Qt Designer ; il explique également le modèle-vue ainsi que la disposition des composants graphiques avec les layouts. Enfin, si vous avez envie de concevoir des applications multilangues avec Qt, ce document vous apprend à le faire avec Qt Linguist.
Comme complément, l'auteur fait une généralité sur les types de licences pour vos applications, parle du Qt Installer Framework afin de concevoir des installeurs universels pour vos applications de même que des dépendances auxquelles il faut faire attention lors de la publication d'application.
Cependant, j'aurais aimé que l'auteur introduise des chapitres sur Qt Quick et Qt Mobility. J'espère que cela sera fait pour les prochaines éditions afin que le livre soit presque complet. Les nouvelles fonctionnalités majeures introduites avec Qt 5 concernent ces deux parties manquantes. Toutefois, « Maîtrisez Qt 5 » demeure un livre idéal pour l'apprentissage de Qt.
Le découpage choisi par l’auteur semble tout à fait pertinent. En effet, en abordant les modules dans un ordre proche de la progression des niveaux d’abstraction associés (de Qt Core, Qt Network jusqu’à Qt Widgets et enfin Qt Multimedia), le lecteur pourra se familiariser avec le fonctionnement du framework avant d’aborder les concepts liés au découpage de l’architecture des applications.
Par ailleurs, tout est structuré autour de l’utilisation de Qt Creator, un EDI spécialisé pour Qt, qui sera probablement utilisé par tous les nouveaux arrivants.
Seul bémol, l’aspect Qt Quick (et donc QML) n’est pas abordé… ce qui limitera la portée de l’ouvrage à des plateformes « desktop ».
Créer des applications avec Qt 5
Les essentiels
Résumé de l'éditeur
Que vous soyez débutant ou avancé, développeur ou designer, ce livre vous accompagnera dans la prise en main de cette nouvelle version. Au travers d'exemples riches et variés, il vous fournit toutes les clés pour développer des applications, vous aider à choisir les modules graphiques, tirer parti de Qt Creator, optimiser votre développement, ou encore réussir votre migration depuis Qt 4. La part belle est naturellement faite à Qt Quick et au QML, qui recèlent les principales nouveautés, et c'est par leur apprentissage que devra commencer le débutant.
Conçu sous forme de modules thématiques, ce livre vous invite à suivre votre propre parcours de lecture, selon vos besoins et votre profil.
La richesse de ce livre tient à la diversité de ses auteurs, d'expériences et de compétences complémentaires, tous très impliqués dans la communauté Qt. Johnathan Courtois, qui les a supervisés, est développeur free lance. Il a codirigé pendant deux ans la rubrique Qt sur Developpez.com.
Édition : D-Booker - 650 pages, 1er novembre 2013
ISBN10 : 2822701083 - ISBN13 : 9782822701082
- Tour d'horizon
- Migration de Qt 4 à Qt 5
- Installation de Qt et introduction à Qt Creator
- Premiers programmes (avec Qt Widgets)
- Aller plus loin avec Qt Creator
- Déploiement d'applications
- Qt Quick
- Qt Quick Designer
- Démarrer en QML
- Introduction à JavaScript pour Qt Quick
- Gérer l'interactivité
- Organiser ses interfaces graphiques
- Optimiser son développement
- Étude d'une première application avec Qt Quick
- Enrichir l'interface graphique
- Qt Quick, QML et C++
- Ouvrir son application vers l'extérieur
- Test et débogage
- Graphics View
- Démarrer avec le framework Graphics View
- Notions avancées
- Étude d'une application créée avec Graphics View
En conclusion, ce livre est parfait pour se familiariser doucement avec Qt 5, mais surtout, pour apprendre la conception d'interfaces avec Qt Quick, élément essentiel des applications graphiques portables et modernes.
Advanced Qt Programming
Creating Great Software with C++ and Qt 4
Résumé de l'éditeur
Advanced Qt Programming montre exactement aux développeurs comment tirer pleinement parti des plus importantes nouvelles API, patrons de conception et pratiques de développement des Qt 4.5 et 4.6. Rédigé par Mark Summerfield, expert de Qt, ce livre se concentre sur les techniques qui offrent le plus de puissance et de souplesse avec le moins de complexité ajoutée.
Summerfield se concentre en particulier sur la programmation modèle/vue et graphique/vue, les applications hybrides bureau/Web, les threads et les applications qui intègrent des médias et du texte riche. Tout au long du livre, il présente des exemples réalistes, téléchargeables, testés sur Windows, Mac OS X et Linux en utilisant Qt 4.6 (et la plupart testée sur Qt 4.5) et conçus pour anticiper les futures versions de Qt. Le livre
- se promène à travers l'utilisation de Qt avec WebKit pour créer des applications hybrides bureau/Internet innovantes ;
- montre comment utiliser le framework Phonon pour créer de puissantes applications multimédia ;
- présente les meilleures techniques d'utilisation des modèles de tableaux et d'arbres (modèle/vue), des QStandardItemModel, des délégués et des vues mais également comment en créer une version personnalisée ;
- explique comment écrire des programmes utilisant les threads plus efficacement avec le module QtConcurrent et la classe QThread ;
- couvre la programmation graphique/vue : architecture, fenêtres, widgets, layouts, scènes et plus encore ;
- introduit les nouveaux puissants frameworks de Qt 4.6 : animation et machine à état.
Commentaire de Eirik Chambe-Eng, co-créateur de Qt
"Il manquait un bon livre sur la programmation avancée avec Qt dans l'arsenal des programmeurs Qt. Je suis très heureux que Mark en ait écrit un. Il est un rédacteur technique fantastique avec toute l'expérience nécessaire pour écrire avec autorité sur la programmation Qt. En d'autres termes : vous allez vous régaler ! Vous tenez dans vos mains une excellente occasion d'élargir vos connaissances sur tous les trucs cool que vous pouvez faire avec Qt."
À propos de l'auteur
Mark Summerfield dirige Qtrac Ltd. où il travaille en tant que consultant indépendant, programmeur, auteur, éditeur et entraineur spécialisé en C++, Qt, Python et PyQt. Pendant presque trois ans en tant que responsable de la documentation pour Trolltech (maintenant Nokia Qt Development Frameworks), il a créé et édité le journal technique Qt Quarterly. Il a écrit Rapid GUI Programming With Python and Qt (Prentice Hall, 2008) et Programming in Python 3, Second Edition (Addison-Wesley, 2010). Avec Jasmin Blanchette, il a co-écrit C++ GUI Programming with Qt 4, Second Edition (Prentice Hall, 2008).
Édition : Prentice Hall - 560 pages, 1re édition, 21 juillet 2010
ISBN10 : 0321635906 - ISBN13 : 9780321635907
- Hybrid Desktop/Internet Applications
- Internet-Aware Widgets
- Using WebKit
- Audio and Video
- Using QSound and QMovie
- The Phonon Multimedia Framework
- Model/View Table Models
- Qt's Model/View Architecture
- Using QStandardItemModels for Tables
- Creating Custom Table Models
- Model/View Tree Models
- Using QStandardItemModels for Trees
- Creating Custom Tree Models
- Model/View Delegates
- Datatype-Specific Editors
- Datatype-Specific Delegates
- Model-Specific Delegates
- Model/View Views
- QAbstractItemView Subclasses
- Model-Specific Visualizing Views
- Threading with QtConcurrent
- Executing Functions in Threads
- Filtering and Mapping in Threads
- Threading with QThread
- Processing Independent Items
- Processing Shared Items
- Creating Rich Text Editors
- Introducing QTextDocument
- Creating Custom Text Editors
- A Rich Text Single Line Editor
- Multi-line Rich Text Editing
- Creating Rich Text Documents
- Exported QTextDocument File Quality
- Creating QTextDocuments
- Exporting and Printing Documents
- Painting Pages
- Creating Graphics/View Windows
- The Graphics/View Architecture
- Graphics/View Widgets and Layouts
- Introducing Graphics Items
- Creating Graphics/View Scenes
- Scenes, Items, and Actions
- Enhancing QGraphicsView
- Creating a Dock Widget Toolbox
- Creating Custom Graphics Items
- The Animation and State Machine Frameworks
- Introducing the Animation Framework
- Introducing the State Machine Framework
- Combining Animations and State Machines
Critique détaillée des différents chapitres
Le premier chapitre décrit pour la première fois dans un livre l'utilisation du module QtWebKit. La première partie est assez simple et reprend l'exemple d'un navigateur Web pour décrire l'utilisation des classes du module. La seconde partie devient très intéressante avec une explication de l'intégration de QWidget dans une page Web permettant ainsi de créer une application hybride.
Le second chapitre présente les fonctionnalités multimédia de Qt avec un exemple rapide de ce qu'on peut faire avec QSound et QMovie, puis toute une partie très détaillée sur l'utilisation de Phonon pour créer un lecteur de musique et un lecteur vidéo. Il est un peu décevant que QtMultimedia qui est apparu dans Qt 4.6 ne soit cité qu'en conclusion de ce chapitre. Il est clair qu'il s'agit de fonctionnalité de plus bas niveau en comparaison de Phonon qui permet une manipulation simple des flux audio et vidéo, mais ce dernier a de grande chance de ne plus être supporté dans les prochaines versions de Qt au profit du module Multimedia de Qt Mobility, il est donc surprenant de voir deux sous-chapitres entiers dédiés à celui-ci.
Les chaptires trois à six décrivent l'intégralité de l'architecture modèle/vue de Qt introduite dans Qt 4.4. Il s'agit de la partie la plus difficile de ce livre (peut-être également la plus compliquée du framework Qt) même si Summerfield part des bases de la programmation avec ce modèle. Les deux premiers chapitres se basent sur un exemple d'une application de codes postaux alors que les deux chapitres suivants décrivent le développement d'une application de liste des tâches avec une gestion du temps (timer). Même si une grande partie de la documentation est reprise ici, pour les développeurs voulant utiliser la programmation modèle/vue, ces chapitres sont plus qu'appréciables pour bien comprendre le fonctionnement interne de cette architecture.
Les chapitres sept et huit concernent le threading dans les applications Qt. Le chapitre sur le module QtConcurrent est très intéressant, appuyé d'un exemple d'application de traitement d'images (conversion de format) détaillant le filtering et le mapping entre autres. J'ai cependant été très déçu du chapitre sur QThread. Je suis un fervent lecteur des Qt Labs Blog et j'apprécie le travail d'écriture concernant l'utilisation de certaines parties du framework Qt un peu obscures. J'avais particulièrement été en accord avec le sujet "Vous vous y prenez mal..." et ce chapitre présente un exemple qui fait exactement le contraire de l'explication, à savoir sous-classer QThread et mettre le code de ce que l'on veut threader dans la fonction run(). Cela montre un manque de cohérence entre les créateurs du framework et les personnes qui écrivent la documentation et les livres, ce n'est pas la première fois que je le remarque, je trouve ça dommage.
Le chapitre neuf explique comment créer un éditeur de texte riche en utilisant principalement QTextDocument et QTextCursor. Il détaille également la manière d'ajouter l'auto-complétion et la colorisation syntaxique dans un tel éditeur. Ce chapitre est très bien fait et je le conseille à tous ceux qui veulent rendre la saisie de texte plus agréable dans leur application.
Le chapitre dix se concentre sur l'exportation et l'impression de documents dans différents formats. Il commence avec une comparaison de la qualité des différents modes d'exportation et d'impression pour différentes plateformes et versions de Qt. Puis une explication détaillée des différentes méthodes pour exporter des documents dans les formats ODF, HTML, PDF, PS et SVG est présentée ce qui est une première pour Qt et très intéressante.
Les chapitres onze et douze présentent l'architecture graphique/vue apportant une grande valeur ajoutée à ce livre étant donné qu'il s'agit d'une partie du framework la plus utilisée par les développeurs Qt. Les chapitres s'articulent autour de deux exemples bien choisis permettant de faire un tour de l'ensemble des fonctionnalités de base de l'architecture graphique/vue. Pour une utilisation complexe avec détection de collision par exemple, il faudra revenir.
Le chapitre treize décrit lui aussi pour la première fois une nouvelle partie de Qt 4.6 : le framework animation et la machine à état. Ce chapitre est bien fait commençant vraiment du début pour un nouveau concept dans Qt mais il s'agit vraiment d'une introduction et on aurait aimé que ça aille un peu plus loin. Il s'agit peut être également de la déception du fait que c'est la fin du livre.
Avis général
Malgré les critiques que j'ai pu émettre sur différents chapitres, il s'agit néanmoins d'un très bon ouvrage à mettre dans toutes les bibliothèques des développeurs Qt confirmés. De nombreux encadrés détaillant très précisément un aspect du framework (MIME types, magic numbers, smart pointers, etc.) sont très apréciables, et il m'arrive régulièrement d'aller m'y référer. Le seul point que je trouve regrettable est le manque de consistance avec les sujets des Qt Labs Blogs, mais il peut s'agir d'un problème de temporalité entre les écritures et du fait que le nombre de développeurs du framework est devenu très important. Qt est en effet un framework qui évolue très vite et on peut se demander quelle est la durée de vie d'un tel livre. Je trouve tout d'abord que pour un livre ayant été écrit avant la sortie de Qt 4.7, il y est fait régulièrement référence en présentant comment ce sera dans cette nouvelle version ce qui favorise une durée de vie plus longue. Le côté un peu négatif pour celle-ci est sûrement les parties sur Phonon mais également les quatre chapitres sur l'architecture modèle/vue qui, selon certaines rumeurs, risquent de ne pas être supportée encore très longtemps. Il faut relativiser en soulignant que réaliser un livre avec une durée de vie importante pour un framework qui bouge à la vitesse de Qt est très difficile.
Qt for Symbian
Résumé de l'éditeur
Sujets traités :
- installer la plateforme de développement / SDK ;
- expliquer les bases de l'environnement Qt ;
- l'extension du module Qt ;
- la communication ;
- les capteurs ;
- exemples simples de Qt pour Symbian et bien plus encore.
En utilisant Qt, vous pouvez développer des applications et des interfaces utilisateurs une seule et unique fois puis les déployer sur plusieurs systèmes d'exploitation, à la fois de bureau et embarqués sans avoir à réécrire le code source. Cet outil de développement multiplateforme largement connu et employé a été récemment appliqué à la plateforme Symbian et aura un impact massif sur les téléphones Symbian pour la prochaine décennie.
Cet excellent ouvrage a été rédigé par une équipe d'auteurs experts qui sont impliqués dans la nouvelle version de Qt et sont parmi les meilleurs développeurs dans le domaine. Qt pour Symbian en fin de compte vous fera économiser des coûts, des ressources de développement et vous aidera à mettre votre produit sur le marché plus rapidement !
Édition : John Wiley & Sons Ltd - 208 pages, 1re édition, 1er juin 2010
ISBN10 : 0470750103 - ISBN13 : 9780470750100
- The Importance of Mobile Developers
- Symbian OS
- Qt
Getting Started
- Installing the Development Environment
- Using Carbide.c++ with Qt for Symbian
- Summary
Qt in General
- Hello World.
- Basics
- Signals and Slots
- Qt Object Model
- User Interface
- System
- Communication
Qt Mobility APIs
- Introduction
- Bearer Management
- Contacts
- The Contacts API
- Location
- Messaging
- Multimedia
- Publish and Subscribe
- Service Framework
- System Information
- Summary
Qt-Like Mobile Extensions
- Utilizing Platform Features beyond Qt APIs
- How to Use the Mobile Extensions in Your Project
- Alarms
- Calendar
- Camera
- Installer
- Landmarks
- Profile
- Sensors
- Telephony
- Utils
- Vibra
Qt Apps and Native Symbian Extensions
- Data Types and Symbian OS Class Naming Conventions
- Memory Managemen
- Executable Files
- Platform Security
- Active Objects
- Error Handling
- Threads
- Qt for Symbian
- Summary
Qt for Symbian Examples
- Mobility API Examples
- Qt for Symbian and Mobile Extension Examples
Le public visé est : toutes les personnes intéressées par l'utilisation de Qt pour développer des applications Symbian, des débutants à ceux déjà experts dans le domaine de Symbian ou de Qt. L'introduction suggère même des chapitres qui peuvent être ignorés par les lecteurs plus expérimentés. Toutefois, de mon point de vue, il serait plus avantageux de lire ce livre comme il est censé être lu - chapitre par chapitre et leçon par leçon, sans en sauter. Il y a six chapitres, chacun avec environ 10 leçons et tout le monde doit commencer au moins par le 3e, Qt in General, qui traite des aspects de Qt qui ne s'appliquent pas spécifiquement à Symbian et révèle les points forts de la plateforme qui pourrait être autrement moins évidents, tels que le datatype QVariant et les API Qt pour les threads et la connectivité.
Bien que ce livre n'est certainement pas pour les inexpérimentés - la connaissance de C++ et de développement mobile est souvent supposée - il y a quand même des leçons exceptionnellement utiles sur certains concepts de base ; la gestion de la mémoire, par exemple, et la communication entre threads. Il convient cependant de noter que le style narratif obscurci parfois des passages utiles, ce qui nécessite une lecture attentive de ceux dont la langue maternelle n'est pas l'anglais.
Le chapitre 4 est la raison du pourquoi tout le monde a besoin d'acheter ce livre. Il couvre ce qui fait de Qt une plateforme viable pour Symbian - les « Mobility API », y compris la gestion des contacts, la géolocalisation, la messagerie et plus (sans s'attaquer à certains des inconvénients, comme le fait que l'émulateur ne supporte aucun de ces éléments). Les chapitres 5 et 6 essayent de satisfaire des ambitions non atteintes dans le chapitre 4, laissant loin derrière Qt fondation. Le livre se résume sous la forme de plusieurs exemples, très bien réalisés et téléchargeables.
Ce qui manque le plus au livre est un chapitre de dépannage. Tous les livres de technologie devraient en avoir un, mais pour un livre sur le développement Symbian c'est indispensable. Les causes possibles pour une application de refuser de compiler, de s'installer ou de s'exécuter sont légion, même les applications développées avec Qt, et ce livre aurait bénéficié considérablement de s'attaquer à certaines d'entre elles. En effet, le seul vrai défaut de Qt for Symbian est un optimisme débordant et, par conséquence, une incapacité à reconnaître les aspects négatifs de développement Symbian. Particulièrement, je me demande combien de temps il peut être pris au sérieux en tant que plateforme mobile en concurrence avec Android, iPhone et le nouveau système d'exploitation fleuron de Nokia, Maemo.
C++ GUI Programming with Qt 4
Second Edition
Résumé de l'éditeur
Construit avec des exemples concrets et des conseils en profondeur, c'est le livre que Trolltech utilise pour enseigner Qt à ses propres nouvelles recrues. Entièrement revu et complété, il révèle les meilleurs modèles de programmation Qt de nos jours, de la mise en œuvre de l'architecture modèle/vue à l'utilisation des améliorations de Qt 4.3 du côté de la prise en charge graphique. Vous trouverez des solutions testées pour la quasi-totalité des tâches de développement d'interfaces graphiques, ainsi que des techniques sophistiquées permettant d'accéder à des bases de données, d'intégrer du XML, d'utiliser des sous-classes et la composition et plus encore. Que vous soyez novice dans l'utilisation de Qt ou que vous ayez déjà travaillé avec une ancienne version, ce livre peut vous aider à accomplir tout ce que Qt 4.3 rend possible.
- Entièrement mis à jour avec des nouveaux chapitres sur les bases de données, le XML et la programmation embarquée avec Qtopia.
- Couvre tous les changements de Qt 4.2/4.3, y compris le support de Windows Vista, l'utilisation native des CSS pour personnaliser les widgets et la génération de fichiers SVG.
- Contient deux chapitres distincts pour la 2D et la 3D, permettant de couvrir les nouvelles classes des vues graphiques introduites dans Qt 4.3 ainsi qu'une introduction au back-end du peintre OpenGL.
- Contient de nouveaux chapitres sur la personnalisation d'une application et l'utilisation de scripts.
- Illustre l'architecture modèle/vue de Qt 4, le support des plug-ins, la gestion de disposition, le traitement des événements, les classes conteneurs et bien plus encore.
- Présente des techniques avancées absentes dans tous les autres livres, pour créer des plug-ins Qt pour des applications permettant d'interfacer les API natives.
- Contient un nouvel appendice sur Qt Jambi, la nouvelle version Java de Qt.
À propos des auteurs
Jasmin Blanchette était un ingénieur logiciel senior spécialisé en Qt et il écrit sa thèse en informatique à l'université d'Oslo.
Mark Summerfield travaille comme consultant et formateur spécialisé en C++, Qt, Python et PyQt et est l'auteur de Rapid GUI Programming with Python and Qt.
Blanchette et Summerfield ont co-écrit C++ GUI Programming with Qt 3 et la première édition de C++ GUI Programming with Qt 4.
Édition : Prentice Hall - 752 pages, 2e édition, 1er février 2008
ISBN10 : 0132354160 - ISBN13 : 9780132354165
- Pour débuter
- Créer des boîtes de dialogue
- Créer des fenêtres principales
- Implémenter la fonctionnalité d'application
- Créer des widgets personnalisés
Qt : niveau intermédiaire
- Gestion des dispositions
- Traitement des événements
- Graphique 2D
- Glisser-déposer
- Classe d'affichage d'éléments
- Classes conteneur
- Entrées/sorties
- Les bases de données
- Gestions de réseau
- Xml
- Aide en ligne
Qt : étude avancée
- Internationalisation
- Personnalisation de l'application
- Graphique 3D
- Créer des plug-in
- Utilisation des scripts
- Fonctionnalités spécifiques à la Plate-forme
- Programmation embarquée
Annexe A : récupérer et installer Qt
Annexe B : compiler une application Qt
Annexe C : introduction à Qt Jambi
Annexe D : introduction au langage C++ pour les programmeurs Java et C#
Si vous avez déjà lu la première édition, vous pourrez découvrir un nouveau chapitre sur la personnalisation d'applications avec les feuilles de style et QStyle ainsi qu'un chapitre consacré à QtScript. Les chapitres sur la 2D et la 3D ont été séparés, ce qui permet d'aller plus en profondeur dans les deux domaines notamment avec l'utilisation d'OpenGL couplée avec QPainter dans le chapitre 20. Cependant, la structure générale du livre reste la même, il serait donc peut-être plus économe de retrouver ces informations sur la documentation officielle.
Cette nouvelle édition comporte également une nouvelle annexe sur Qt Jambi, le port de Qt pour Java, qui n'est aujourd'hui plus supporté par Nokia et donc relativement peu utilisé. Un certain nombre de fonctionnalités du framework peuvent sembler manquantes à ce livre, car elles étaient en grande partie absentes au moment de la rédaction. Je pense notamment à QtWebKit, toute la partie multimédia avec Phonon et les classes de Qt, l'architecture graphique/vue et le framework animation. L'ensemble de ces nouveautés est cependant disponible dans l'ouvrage Advanced Qt Programming paru en juillet 2010.
Contrairement à la première édition et à sa traduction française, ce livre est toujours disponible à la vente.
The Book of Qt 4
The Art of Building Qt Applications
Résumé de l'éditeur
The Book of Qt 4 offre une explication en profondeur de Qt 4, dépassant le très commun focus sur la programmation C++. L'auteur, Daniel Molkentin, utilise des exemples pratiques pour expliquer des fonctionnalités comme le concept de signaux et de slots et le système d'événements, vous guidant dans le développement d'applications avec et sans l'outil de Qt prévu pour les interfaces graphiques, Qt Designer. En tant que développeur de KDE, la tête de Molkentin est remplie de problèmes réels et de solutions qu'il parsème librement tout au long de l'ouvrage, en faisant une ressource à consulter.
Sujets traités :
- des outils pour créer des dialogues ;
- design de GUI avec Qt Designer ;
- layouts de widgets et construction de dialogues ;
- affichage de données en utilisant le concept modèle-vue de Qt ;
- QtSql et la bibliothèque graphique Arthur ;
- gestion de fichiers, XML, processus, connexions réseau ;
- bases de données et threads ;
- gestion des événéments et utilisation du glisser-déposer ;
- internationalisation et débogages.
Que vous soyez déjà un développeur Qt ou que vous prévoyiez de l'utiliser, vous trouverez The Book of Qt 4 indispensable.
À propos de l'auteur
Daniel "danimo" Molkentin est un développeur du projet KDE depuis 2000 et est le co-auteur de l'application PIM Kontact, entre autres. Il était activement impliqué dans le développement de Qt 4 en tant que bêta testeur et a travaillé au port initial de KDE à la nouvelle version de Qt.
Édition : No Starch Press - 440 pages, 1re édition, 1er juillet 2007
ISBN10 : 1593271476 - ISBN13 : 9781593271473
- Basics, Tools, and First Code
- The Tools Needed to Create Dialogs
- GUI Design Using the Qt Designer
- Developing a GUI Application Based on a Main Window
- Laying Out Widgets
- Dialogs
- Events, Drag and Drop, and the Clipboard
- Displaying Data Using "Interview"
- The QtSql Module
- The Graphics Library "Arthur"
- Input/Output Interfaces
- Threading with QThread
- Handling XML with QtXml
- Internationalization
- Appendix A: Debugging Help
- Appendix B: Tulip: Containers and Algorithms
Premières impressions
La première chose que j'ai faite après avoir déballé le livre a été de regarder la quatrième page de couverture et de voir qui était l'auteur (je l'avoue, je n'avais jamais entendu parler de Daniel Molkentin avant). Il est développeur de KDE depuis 2000, il se concentre sur le module PIM du framework. Quand ce livre a été écrit (vers 2006), l'édition de KDE basée sur Qt 4 n'en était qu'à ses prémices, j'espérais donc de Daniel qu'il ait une bonne connaissance globale de Qt sans nécessairement aller dans les détails - il était des bêta testeurs de Qt4, je doute cependant qu'il ait vérifié toutes les parties que cette version cachait.
Ensuite, j'ai regardé l'avant-propos. Il y en a deux : un par Eirik Chambe-Eng, l'autre de Matthias Ettrich. Ces noms parlent d'eux-mêmes et étaient très positifs quant au travail de Daniel, ma soif n'a fait qu'augmenter. Aussi, Axel Jaeger, un administrateur de QtCentre, est mentionné comme étant une des personnes ayant une certaine influence sur le livre, ce qui était un plus non négligeable (le site est mentionné de nom également).
En détail
Le livre débute en expliquant les concepts de base de Qt, les différences entre les classes qui héritent de QObject et les autres (certains pensent que toute classe de Qt est un QObject). Vient ensuite un chapitre agréable expliquant Qt Designer dans tous ses états. Une très bonne chose pour les nouveaux utilisateurs. Le seul problème que j'y vois est que le concept des layouts est expliqué de façon assez éparse dans tout le livre au lieu de l'être dans le chapitre séparé (très bien aussi) où il est décrit, même si des traces apparaissent au début du livre (des sections similaires partageant le même nom).
Tout d'abord, il n'y a pas un seul mot concernant le framework Graphics View, ce qui est relativement étrange. Au début, je pensais que le livre avait été achevé avant l'apparition de ce framework (dans Qt 4.2.0). Cependant, quand j'ai remarqué que l'auteur mentionnait Qt 4.2 à d'autres endroits, ça n'était pas plausible. Ce framework est une partie très importante de Qt, fortement utilisée par ses utilisateurs : j'aurais espéré que ce livre décrive au moins ses bases ! C'est un grand moins.
Ensuite, mon sous-système de Qt favori - Interview, le framework modèle-vue. Le livre décrit agréablement les bases de son utilisation et essaye ensuite de couvrir des sujets plus avancés, comme l'implémentation de ses propres modèles. Des problèmes apparaissent quand Daniel tente d'expliquer les délégués, une partie très importante du framework. La section sur les délégués ne fait que trois pages et ne décrit qu'un des usages les moins fréquents - créer son propre éditeur de widgets et échanger des données avec le modèle. Il n'y a pas un seul mot sur le dessin d'items ou la gestion des événements pour les index de modèles. Il manque aussi au chapitre la manipulation des vues elles-mêmes (qui viendrait complémenter les sections sur l'implémentation des modèles et délégués).
Du côté clarté, le livre explique des sujets comme le compositing et la sérialisation d'objets, même s'il ne fait que de brèves mentions des capacités réseau de Qt et ignore complètement le framework de test unitaire.
Conclusions
J'ai rencontré bien des petites fautes et incohérences à la lecture, dont quelques-unes sont ici mentionnées, partiellement et probablement causées par une traduction imprécise (je pense que le livre a été écrit à l'origine en allemand) et partiellement, probablement par l'expiration du délai - il semble que des parties du livre aient été taillées.
Le livre traverse les sujets de base de la programmation avec Qt mais ignore quelques concepts plus avancés. Ce qui m'a le plus manqué : le framework Graphics View, le test unitaire et des sections plus avancées sur le modèle-vue. J'aurais aussi aimé voir plus de sujets avancés mais ce n'est pas une lacune rare dans les livres sur Qt 4. Même si le livre n'est pas parfait, il est quand même une fontaine de connaissances pour les programmeurs qui débutent avec Qt.
J'attends avec impatience la seconde édition, je suis sûr que tous ces problèmes seront corrigés, nous aurons alors un excellent livre pour apprendre.
Ma première impression est que ce livre offre une introduction solide au développement d'applications avec interface graphique en utilisant le framework Qt. Grâce à sa cohérence, il est bien prévu pour une utilisation future en tant que livre de référence basique et instantané, hébergé potentiellement dans toute bibliothèque de programmeurs C++.
Le contenu
Avec 14 chapitres, 440 pages et deux appendices, le livre, assez digérable, de Daniel Molkentin prend le temps nécessaire pour détailler les widgets pertinents, les algorithmes et les outils nécessaires pour mener à bien un projet Qt.
Le livre, construit systématiquement sur le détail précédent, débute avec une application Hello world et explique moult outils basiques, dont Qt Designer. Il touche aussi des sujets comme les layouts, les événements, les connexions aux bases de données, le parsing XML, les graphiques, les différents widgets et l'internationalisation. Tous les sujets intéressants sont introduits... et immédiatement développés.
Le chapitre 10, couvrant la bibliothèque graphique Arthur, est mon préféré. Il explique comment générer des PDF, offrir un support du SVG et comment dessiner des widgets. J'ai particulièrement aimé la section 10.9.3, où un fichier PDF a été généré très simplement en configurant correctement un objet QPrinter.
Pour qui est ce livre ?
Ce livre est prévu pour les programmeurs C++ qui aimeraient connaître le potentiel de la bibliothèque Qt et peut-être utiliser les outils d'IHM pour un projet spécifique.
Pertinence du logiciel libre
Actuellement, Qt est distribué sous licence QPL. Précédemment, cette approche open-source n'a pas été entièrement pure et le projet KDE a laissé, sur son site Web, une page le spécifiant, pour des raisons historiques. Trolltech, la société derrière Qt, a essayé de différencier les utilisateurs commerciaux et non commerciaux. Cependant, j'ai vraiment l'impression que le cœur de Trolltech a toujours été orienté en droite ligne de l'open-source.
Les différents sites Web des projets KDE affichent publiquement qu'ils croient que Qt est le meilleur framework disponible pour UNIX. Un framework graphique correct doit permettre, même aux débutants, de construire des applications puissantes et complexes sans devoir avoir un bon niveau en C++ ou de construire les classes utilitaires personnalisées pour des tâches standards comme la gestion du XML ou la connexion à une base de données. Qt est très bien pensé et est un solide exemple d'un tel framework.
Le livre est très lisible et, par conséquent, abaisse la barrière d'entrée au framework Qt encore plus. Plus elle sera basse, plus il sera probable que les développeurs vont rapidement comprendre et commencer à construire de nouvelles et intéressantes applications.
Avantages
C'est un livre solide pour les développeurs C++ intéressés par la construction d'applications efficaces basées sur Qt. Il a aussi sa place en tant que livre de référence pour des visites ultérieures.
Inconvénients
Une critique triviale : un chapitre supplémentaire sur les différences entre les plateformes aurait été utile. Par exemple, il manque des astuces spécifiques à Mac OS X, Windows et UNIX.
Cette critique est disponible sous la licence Creative Commons License 3.0 Attribution-NonCommercial-Sharealike.
Qt 4 et C++
Programmation d'interfaces GUI
Résumé de l'éditeur
Ce guide complet vous permettra d'obtenir des résultats fantastiques avec la version la plus puissante de Qt jamais créée : Qt 4.1. En s'appuyant sur des exemples réalistes, il présente des techniques avancées sur divers sujets, depuis le développement de l'interface graphique de base à l'intégration avancée de XML et des bases de données.
- Couvre l'ensemble des éléments fondamentaux de Qt, depuis les boîtes de dialogue et les fenêtres jusqu'à l'implémentation de la fonctionnalité d'une application ;
- Présente des techniques avancées que vous ne retrouverez dans aucun autre ouvrage, comme la création de plug-ins d'application et pour Qt, ou la création d'interfaces avec les API natives ;
- Contient des annexes détaillées sur la programmation C ++/Qt destinées aux développeurs Java expérimentés.
Le CD-ROM d'accompagnement contient l'édition open source de Qt 4.1.1 pour Windows, Mac, Linux et de nombreux autres UNIX. Il propose aussi MinGW, un ensemble d'outils de développement disponible gratuitement que vous pouvez utiliser pour créer des applications Qt sous Windows. Vous y trouverez également le code des exemples présentés dans ce livre.
À propos des auteurs
Jasmin Blanchette, responsable de la documentation chez Trolltech et développeur expérimenté travaille pour cette société depuis 2001. Il intervient comme éditeur de Qt Quaterly, le bulletin d'information technique de Trolltech.
Mark Summerfield travaille comme consultant et formateur spécialisé en C ++, Qt et Python. Il a assumé la charge de responsable de la documentation chez Trolltech pendant presque trois ans.
Édition : Pearson Education - 550 pages, 1re édition, 1er juillet 2007
ISBN10 : 2744040924 - ISBN13 : 9782744040924
- Pour débuter
- Créer des boîtes de dialogue
- Créer des fenêtres principales
- Implémenter la fonctionnalité d'application
- Créer des widgets personnalisés
Qt : niveau intermédiaire
- Gestion des dispositions
- Traitement des événements
- Graphiques 2D et 3D
- Glisser-déposer
- Classe d'affichage d'éléments
- Classes conteneurs
- Entrées/sorties
- Les bases de données
- Gestion de réseau
- Xml
- Aide en ligne
Qt : étude avancée
- Internationalisation
- Environnement Multithread
- Créer des plug-in
- Fonctionnalités spécifiques à la plateforme
- Programmation embarquée
Annexe A : installer Qt
Annexe B : introduction au langage C++ pour les programmeurs Java et C#
De plus, le livre traite aussi les sous-bibliothèques de Qt non graphiques, sans trop s'y attarder toutefois. On y retrouve donc des introductions aux modules de réseau, de programmation multitâche, d'interaction avec des bases de données, entre autres.
Enfin, il faut préciser qu'il est écrit dans un style très agréable, que le code est clair mais également qu'il y a régulièrement des images, captures d'écrans ou schémas pour étoffer l'explication d'une notion. C'est donc un livre qui vous plonge dans l'ambiance Qt 4, mais qui ne tient pas du tout le rôle de référence. Toutefois, la combinaison de ce livre avec la documentation officielle peut s'avérer très efficace lorsque vous réaliserez des applications avec Qt 4.
Le livre dispose également d'un cd-rom qui contient les exemples (sources) du livre, ainsi que le framework Qt pour Windows, Linux et Mac en version 4.1.x.
Pour finir, ce livre est un bon guide que je recommande à toute personne s'intéressant au développement d'applications portables ou aux personnes voulant créer une interface rapidement à partir de rien.
Le début du livre est résolument destiné aux développeurs n'ayant jamais utilisé Qt, les concepts de base y sont détaillés, pour vous amener à créer une première interface graphique. La seconde partie est axée sur les concepts nécessaires pour développer une réelle application fonctionnelle et la dernière partie se focalise sur la programmation plus spécifique et moins grand public comme l'internationalisation d'une application ou la programmation multithread.
Il existe peu de livres sur Qt en français mais celui-ci en est assurément un bon. À la fois livre de référence mais aussi livre didactique, vous y trouverez forcément votre compte, quel que soit votre niveau. Bien qu'étant un puissant framework, Qt apparaît beaucoup plus simple avec un tel livre, clair et bien expliqué.
C++ GUI Programming With Qt 4
Résumé de l'éditeur
En utilisant C++ GUI Programming with Qt 4, vous découvrirez les motifs et les techniques les plus efficaces de la programmation Qt 4 pendant que vous maîtriserez des technologies clés allant de l'architecture modèle/vue au puissant nouveau moteur de dessin 2D de Qt. Les auteurs fournissent aux lecteurs une vision inégalée du modèle d'évènements de Qt et le système de layout. Puis, en utilisant des exemples réalistes, ils introduisent des techniques de plus haut niveau pour tout, depuis le développement d'interfaces graphiques simples aux bases de données avancées et l'intégration XML.
- Inclut des nouveaux chapitres sur l'architecture modèle/vue de Qt 4 et sur le nouveau support de plug-ins, ainsi qu'une brève introduction à la programmation embarquée avec Qtopia ;
- Couvre tous les fondamentaux Qt, depuis les boîtes de dialogue et autres fenêtres à l'implémentation de fonctionnalités dans une application ;
- Introduit les meilleures pratiques pour la gestion des layouts et des évènements ;
- Montre comment tirer le meilleur des nouvelles API de Qt, y compris le nouveau moteur de dessin 2D et les nouvelles classes conteneurs ;
- Possède une mise à jour du contenu de chaque chapitre ;
- Présente des techniques avancées de Qt 4 absentes dans tous les autres livres, pour créer des plug-ins Qt pour des applications permettant d'interfacer les API natives ;
- Contient un appendice poussé sur la programmation C++/Qt pour les développeurs Java expérimentés.
Le CD-ROM d'accompagnement contient l'édition open source de Qt 4.1.1 pour Windows, Mac et Linux ainsi que MinGW, un ensemble d'outils de développement libre qui peut être utilisé pour construire des applications Qt sous Windows, ainsi que le code source des exemples du livre.
Édition : Prentice Hall - 560 pages, 1re édition, 1er juin 2006
ISBN10 : 0131872494 - ISBN13 : 9780131872493
- Pour débuter
- Créer des boîtes de dialogue
- Créer des fenêtres principales
- Implémenter la fonctionnalité d'application
- Créer des widgets personnalisés
Qt : niveau intermédiaire
- Gestion des dispositions
- Traitement des événements
- Graphiques 2D et 3D
- Glisser-déposer
- Classe d'affichage d'éléments
- Classes conteneurs
- Entrées/sorties
- Les bases de données
- Gestion de réseau
- Xml
- Aide en ligne
Qt : étude avancée
- Internationalisation
- Environnement Multithread
- Créer des plug-ins
- Fonctionnalités spécifiques à la plate-forme
- Programmation embarquée
Annexe A : installer Qt
Annexe B : introduction au langage C++ pour les programmeurs Java et C#
La première partie est dédiée à ceux qui ne connaissent rien de Qt, il y est question des connexions, des signaux et slots, si chers à Qt. Rien qu'avec cette partie, on est capable de créer une interface graphique simple, efficace.
La deuxième partie permet d'aller plus loin en termes de fonctionnalités dans une application. Il est vrai que souvent, on a besoin de plus que simplement une interface graphique permettant d'exécuter un travail puis de redonner la main, sans voir un résultat. Même pour des interfaces simples, Qt simplifie le travail à l'aide des layouts, mais on y voit aussi la gestion des évènements, la gestion du moteur 2D - on regrettera l'absence de Graphics View qui n'est apparu qu'à la version 4.2, au moment de la sortie du livre, mais on ne peut pas tout avoir -, l'architecture model/view très bien pensée même si difficile à première vue d'utilisation, les conteneurs maison, la gestion du réseau des bases de données, de l'XML...
La dernière partie est dédiée aux traductions - Qt propose un système simple pour traduire son application -, au multi-threading, aux plug-ins et aux spécificités de chaque plateforme. On appréciera aussi le mot au sujet de Qtopia.
En définitive, pour qui ne connaît pas en détail Qt 4, ce livre est indispensable même si déjà dépassé par la nouvelle version de Qt 4 qui ajoute des fonctionnalités. Mais le livre est didactique, on sent la main de l'auteur de la documentation officielle de Qt, Mark Summerfiled et c'est un gage de sérieux et de qualité.