1. Supports de cours
  2. Maîtrisez Qt - Guide de développement d'applications professionnelles (3e édition)

Maîtrisez Qt Guide de développement d'applications professionnelles (3e édition)

  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement et pour une durée de 10 ans
  • Version HTML
  • Accès illimité 24h/24, 7J/7
  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne

Présentation

Ce livre sur Qt, à la fois bibliothèque et framework, s'adresse aux professionnels de l'informatique, développeurs débutants ou plus avancés, souhaitant maîtriser cet outil pour écrire du code de qualité et le tester, pour packager des applications et les distribuer sur les différents systèmes d'exploitation pour PC et mobiles, pour améliorer les performances des applications et satisfaire au mieux les exigences des utilisateurs. L’objectif du livre est de présenter Qt des bases jusqu’aux éléments d’interface graphique multiplateformes. Il ne se substitue pas à la documentation exhaustive des classes de Qt mais en présente certaines pour accompagner le lecteur dans sa découverte. Pour tirer pleinement parti de ce livre, les lecteurs devront posséder des connaissances suffisantes en C++.

Étape par étape, vous comprendrez la structure de la bibliothèque, 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 vos connaissances sur 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) et bien d’autres pour terminer par la vérification de la conformité (QtTest) et le packaging d’une application et sa distribution.

Cette troisième édition prend en compte les nombreuses évolutions de Qt. L’auteur porte une attention particulière à Qt Quick avec un nouveau chapitre présentant le workflow de développement depuis l’intégration des interfaces graphiques avec Qt Design Studio jusqu'au développement avec Qt Creator. Vous découvrirez notamment la programmation en QML, les API Qt Quick, l’intégration avec le code C++ et les API dédiées aux plateformes mobiles (capteurs, positionnement, cartographie, Bluetooth, NFC et achats in-app).

En fin d’ouvrage, un nouveau chapitre présente en pratique le développement d’une application multiplateforme de A à Z avec Qt. 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.


Quizinclus dans
la version en ligne !
  • Testez vos connaissances à l'issue de chaque chapitre
  • Validez vos acquis

Table des matières

  • Introduction
    • 1. Objectifs et méthode
    • 2. Glossaire
    • 3. Qt, qu'est-ce ?
      • 3.1 Histoire
      • 3.2 Produits et licences
      • 3.3 Compatibilité
      • 3.4 Notoriété
      • 3.5 Bibliothèque ou framework ?
      • 3.6 Documentation
    • 4. Connaissances requises
      • 4.1 UML
      • 4.2 Patrons de conception
      • 4.3 C++
      • 4.4 JavaScript
    • 5. Que peut-on faire avec Qt ?
      • 5.1 Le modèle d’abstraction
      • 5.2 Les modules de Qt
      • 5.3 Applications pour PC
      • 5.4 Applications mobiles
      • 5.5 Applications serveur et web services
  • L'environnement de développement
    • 1. Objectifs
    • 2. Licence commerciale ou libre ?
      • 2.1 Propriété intellectuelle et GPL
      • 2.2 Diffusion de l'application
      • 2.3 La notion de kit dans Qt
    • 3. Choisir son compilateur
      • 3.1 Mono-plateforme ou multi-plateforme ?
      • 3.2 Maintenabilité du code
    • 4. Installer l'environnement de développement
      • 4.1 Ordinateur personnel Mac Mx
      • 4.2 Ordinateur personnel sous Windows
      • 4.3 Mini ordinateur Raspberry Pi 4B
      • 4.4 Tablette Android
      • 4.5 Première installation
      • 4.6 Intégrer un autre environnement de compilation
    • 5. Maintenir à jour son environnement
      • 5.1 Profiter des dernières nouveautés
      • 5.2 Gérer le cycle de vie de son application
    • 6. Utiliser Qt Creator
      • 6.1 Organisation des projets
      • 6.2 Fenêtre principale
        • 6.2.1 Boutons d'accès aux modules
        • 6.2.2 Boutons de compilation et d'exécution
        • 6.2.3 Onglets de journaux
      • 6.3 Module d'édition
      • 6.4 Module de conception d'interfaces graphiques
      • 6.5 Module de débogage
      • 6.6 Module de configuration de projet
      • 6.7 Module de profilage
    • 7. Créer une application
    • 8. Création et gestion des ressources
  • Les fondations de Qt
    • 1. Objectifs
    • 2. Les Types Qt
    • 3. La classe QObject
      • 3.1 Entité et identité
      • 3.2 Thread principal
      • 3.3 Affinité de thread
      • 3.4 Signaux et slots
        • 3.4.1 Le signal
        • 3.4.2 Le slot
        • 3.4.3 La connexion
        • 3.4.4 Différents types de connexion
        • 3.4.5 L'appel
        • 3.4.6 Clés de compréhension
      • 3.5 Arbre d’objets
      • 3.6 Timers
      • 3.7 Traduction
      • 3.8 Propriétés dynamiques
    • 4. Héritage
      • 4.1 Généralités
      • 4.2 Prototype
      • 4.3 Conversion de types
    • 5. Optimisation des conteneurs
      • 5.1 Comptage de références
      • 5.2 Partage implicite
      • 5.3 Partage explicite
    • 6. La classe QVariant
    • 7. Gestion des erreurs
      • 7.1 bool *ok = 0
      • 7.2 error()
    • 8. Le modèle event-driven
      • 8.1 Pourquoi Qt est-il orienté événements ?
      • 8.2 La notion de flux
      • 8.3 La run-loop
      • 8.4 La programmation asynchrone
      • 8.5 Appeler une fonction de façon asynchrone
        • 8.5.1 L'émission de signaux
        • 8.5.2 L'utilisation d'un timer
        • 8.5.3 La fonction invokeMethod
      • 8.6 Suppression explicite
      • 8.7 Avantages et inconvénients
      • 8.8 Gestion des ressources et performances
      • 8.9 Rendre ses algorithmes non bloquants
        • 8.9.1 Parcourir une longue liste
        • 8.9.2 Faire une pause dans le programme
      • 8.10 Faire dialoguer des objets
    • 9. Les ressources
    • 10. Les propriétés
  • Anatomie d'une application
    • 1. Objectifs
    • 2. Application Widget ou Quick ?
      • 2.1 Application Widget
      • 2.2 Application Qt Quick
      • 2.3 Synthèse
    • 3. Exemples d’architectures classiques
      • 3.1 Cartographie GPS
      • 3.2 Gestion du stock
      • 3.3 Tableau de bord de supervision
    • 4. Service de flux vidéo pour une webcam
    • 5. Description d’un projet Qt
      • 5.1 Contenu d'un projet Qt
      • 5.2 Création d'une application
        • 5.2.1 En ligne de commande
        • 5.2.2 Avec Qt Creator
      • 5.3 Le fichier projet .pro
        • 5.3.1 Les directives de projet
        • 5.3.2 Les directives de chemins
        • 5.3.3 Les directives de précompilation
    • 6. Les commandes du toolkit
      • 6.1 La phase de compilation
  • Qt Core
    • 1. Objectifs
    • 2. Intégration et interactions
    • 3. Découverte de Qt Core
      • 3.1 Le méta-objet
      • 3.2 Introspection
      • 3.3 Le méta-type
      • 3.4 Instanciation dynamique
    • 4. Créer et piloter des threads
      • 4.1 Paralléliser des tâches
        • 4.1.1 Les threads pilotés
        • 4.1.2 Un exemple
        • 4.1.3 Les tâches simples
        • 4.1.4 Lancer une tâche asynchrone
      • 4.2 Synchronisation par blocage et protection
      • 4.3 Synchronisation par notification
    • 5. Les structures de données
      • 5.1 Structures unidimensionnelles
      • 5.2 Structures multidimensionnelles
      • 5.3 Rechercher les performances
    • 6. QByteArray
      • 6.1 Instanciation
      • 6.2 Utilisation d’un pointeur existant
      • 6.3 Rechercher des sous-ensembles
      • 6.4 Convertir un QByteArray
    • 7. QBuffer
    • 8. QString
      • 8.1 Les chaînes C et les langues accentuées
      • 8.2 Les normes ISO, Unicode, UCS
      • 8.3 Échanger des données
      • 8.4 Composer des chaînes
      • 8.5 Listes de chaînes de caractères
      • 8.6 Découper des chaînes de caractères
      • 8.7 Extraire une sous-chaîne
      • 8.8 Rechercher une sous-chaîne
      • 8.9 Construire une chaîne à partir d’un nombre
      • 8.10 Convertir une chaîne en nombre
      • 8.11 Connaître la taille de la chaîne
    • 9. Interactions avec le système d'exploitation
      • 9.1 Exécuter une commande externe
      • 9.2 Les fichiers
    • 10. La gestion des paramètres
      • 10.1 QSettings
      • 10.2 Une classe propriétaire
    • 11. La sérialisation
      • 11.1 Mécanismes
      • 11.2 Exemples
    • 12. Les fichiers XML
      • 12.1 Écrire dans un fichier XML
      • 12.2 Lire un fichier XML
    • 13. Les fichiers JSON
      • 13.1 Lire un fichier JSON
      • 13.2 Écrire dans un fichier JSON
    • 14. Automate à états
      • 14.1 Automate simple
      • 14.2 Collaboration entre automates
      • 14.3 Automate fini
      • 14.4 Animer les changements de propriétés
    • 15. Fonctions et types globaux
      • 15.1 Conversion d’endianisme
      • 15.2 Types universels
      • 15.3 Fonctions globales
        • 15.3.1 Mathématiques
        • 15.3.2 Utilitaires
      • 15.4 Macros
      • 15.5 Fonctions mathématiques avancées
  • Qt Network
    • 1. Objectifs
    • 2. Intégration
    • 3. Accéder au réseau
      • 3.1 Portée de Qt Network
      • 3.2 Appel bloquant vs non bloquant
    • 4. Sockets
      • 4.1 Client TCP
        • 4.1.1 Connexion avec un hôte
        • 4.1.2 Envoi d'une requête
        • 4.1.3 Lecture d'une réponse
        • 4.1.4 Fermeture et nettoyage
      • 4.2 Serveur TCP
      • 4.3 Client UDP
        • 4.3.1 Connexion à un hôte
        • 4.3.2 Envoi de données
        • 4.3.3 Lecture des données
        • 4.3.4 Fermeture de la connexion
    • 5. Internet
      • 5.1 Résolution DNS
        • 5.1.1 Résoudre un nom de machine
        • 5.1.2 Obtenir les enregistrements d'un nom de domaine
      • 5.2 Échange de fichiers avec FTP
        • 5.2.1 Client simple
        • 5.2.2 Client évolué
      • 5.3 Connexion à un serveur HTTP
        • 5.3.1 Création d'une requête
        • 5.3.2 Exécution de la requête
        • 5.3.3 Lecture du résultat
        • 5.3.4 Authentification
      • 5.4 Le chiffrement avec SSL et TLS
    • 6. Les interfaces réseau
    • 7. Les objets distants
      • 7.1 Vocabulaire
      • 7.2 Mise en œuvre
    • 8. Mécanismes communs
      • 8.1 Connexion point à point
    • 9. Connexion via un concentrateur
    • 10. Communications TCP
    • 11. Versions du protocole
    • 12. Objets distants en QML
  • Qt Sql
    • 1. Objectifs
    • 2. Intégration
    • 3. Persistance des données
      • 3.1 Utilisation d'un serveur de données
      • 3.2 Ce que Qt Sql permet et ne permet pas
      • 3.3 Le modèle de conception approprié
    • 4. Connexion au serveur de données
    • 5. Effectuer une requête
      • 5.1 La requête
      • 5.2 Le résultat
      • 5.3 Le mode transactionnel
      • 5.4 Obtenir les métadonnées
      • 5.5 Rechercher les performances
        • 5.5.1 Préparation de la requête
        • 5.5.2 Exécution de la requête
        • 5.5.3 Stratégie d'instanciation
  • Qt Gui
    • 1. Objectifs
    • 2. Intégration
    • 3. QGuiApplication et QWindow
      • 3.1 QGuiApplication
      • 3.2 QWindow
    • 4. Rendu 2D
      • 4.1 Géométrie et positionnement
      • 4.2 Images
        • 4.2.1 QImage
        • 4.2.2 QPixmap
      • 4.3 Dessin 2D
        • 4.3.1 Dessiner des formes
        • 4.3.2 Dessiner du texte
    • 5. Rendu 3D
  • Qt Widgets
    • 1. Objectifs
    • 2. Intégration
    • 3. Flux d'application et de GUI
    • 4. Modèle objet et Vue-Modèle
      • 4.1 Vue-Modèle
      • 4.2 Architecture du code
    • 5. Créer avec Qt Designer
      • 5.1 Organisation du designer
      • 5.2 Mise en page
        • 5.2.1 Ergonomie
        • 5.2.2 Redimensionnement automatique
        • 5.2.3 Une mise en page plus complexe
        • 5.2.4 Modèle objet et relations
    • 6. Créer « à la main »
    • 7. Modes SDI et MDI
    • 8. Créer un menu
    • 9. Réagir aux événements
    • 10. Intégrer et afficher les dialogues créés
    • 11. Feuilles de style
    • 12. Gestion des événements
    • 13. Ressources
      • 13.1 Créer un fichier de ressources
      • 13.2 Utiliser une ressource dans le designer
      • 13.3 Accéder à une ressource depuis le code
    • 14. Widgets personnalisés
    • 15. Icône de notification (Tray icon)
    • 16. Composants graphiques 2D
    • 17. Drag and Drop
      • 17.1 Initialisation des widgets
      • 17.2 Mise en place du drag
      • 17.3 Mise en place du drop
    • 18. Copier-coller
    • 19. Ouvrir et enregistrer des fichiers
    • 20. Généraliser les styles
  • Qt Quick
    • 1. Objectifs
    • 2. Intégration
    • 3. La terminologie de Qt Quick
    • 4. Le modèle objet de Qt Quick
    • 5. Le document QML
      • 5.1 La déclaration pragma (optionnelle)
      • 5.2 Les imports
      • 5.3 L’objet racine
      • 5.4 Les propriétés
        • 5.4.1 Les propriétés attachées
        • 5.4.2 Les propriétés par défaut
        • 5.4.3 Les propriétés obligatoires
      • 5.5 Les signaux
      • 5.6 Les slots
      • 5.7 Les fonctions JavaScript en ligne
      • 5.8 Les fichiers JavaScript
      • 5.9 Les objets enfants
    • 6. Structure d’un projet Qt Quick
    • 7. Mettre en forme une scène
      • 7.1 Le positionnement absolu
      • 7.2 Les layouts
      • 7.3 Les positionneurs
      • 7.4 Les ancres
    • 8. Vue et contrôleur
    • 9. États et transitions
    • 10. Animations et effets
      • 10.1 Animations
    • 11. Dessin 2D avec le Canvas
    • 12. Contrôles riches
    • 13. Utiliser les styles graphiques
      • 13.1 Le style « basique »
      • 13.2 Le style « Fusion »
      • 13.3 Le style « Imagine »
      • 13.4 Le style « macOS »
      • 13.5 Le style « Material »
      • 13.6 Le style « Universal »
      • 13.7 Le style « Windows »
      • 13.8 Utiliser un style
        • 13.8.1 À la compilation
        • 13.8.2 Pendant l’exécution
    • 14. Formes graphiques
    • 15. Effets graphiques
    • 16. Types globaux de Qt Quick
      • 16.1 Les propriétés du Type global Qt
      • 16.2 Les fonctions du type global Qt
      • 16.3 Le Type QML Application
    • 17. Créer ses propres Types QML
    • 18. L’intégration avec C++
      • 18.1 Exposer des classes C++ en QML
        • 18.1.1 Méthodes alternatives
      • 18.2 Propriété des objets
      • 18.3 Intégrer des bibliothèques externes
    • 19. Stocker des données
      • 19.1 Le Type QML Settings
      • 19.2 Le Type LocalStorage
    • 20. Créer des requêtes réseau
      • 20.1 Utiliser des composants QML distants
      • 20.2 Effectuer des requêtes HTTP
      • 20.3 Charger des fichiers locaux
      • 20.4 Utiliser les WebSockets
    • 21. Autres API
    • 22. Qt Design Studio
      • 22.1 Découverte de l’interface
      • 22.2 Création d’un projet
        • 22.2.1 Les composants invisibles
        • 22.2.2 Les données
    • 23. Convertir un projet d’interface graphique en application
    • 24. Créer les contrôleurs et tester l’application
      • 24.1 Le contrôleur
      • 24.2 Réaction aux événements
      • 24.3 Déclenchement des actions
      • 24.4 Conception rapide d’une application
        • 24.4.1 Définir un flux applicatif
        • 24.4.2 Appliquer des effets aux transitions
        • 24.4.3 Personnaliser les courbes de progression
        • 24.4.4 Établir des conditions dans les transitions
        • 24.4.5 Changer l’état d’un composant
      • 24.5 Conception d’animations
  • Qt Multimedia
    • 1. Objectifs
    • 2. Intégration
    • 3. Audio
      • 3.1 Lister les périphériques
      • 3.2 Enregistrer du son
      • 3.3 Lire un fichier
    • 4. Vidéo
      • 4.1 Enregistrer une vidéo
      • 4.2 Lire une vidéo
    • 5. Caméra
      • 5.1 Afficher en direct
      • 5.2 Enregistrer en direct
    • 6. Radio
      • 6.1 Lire un flux radio
      • 6.2 Enregistrer un flux radio
  • Les modules graphiques et web
    • 1. Objectifs
    • 2. Qt Svg
      • 2.1 Intégration
      • 2.2 Rendu et affichage
      • 2.3 Exporter au format SVG
    • 3. QtPrintSupport
      • 3.1 Intégration
      • 3.2 Choisir l'imprimante
      • 3.3 Imprimer un dessin
      • 3.4 Imprimer un widget
      • 3.5 Imprimer du texte
    • 4. QtWebkitWidgets
      • 4.1 Intégration
      • 4.2 Afficher une page web
      • 4.3 Accéder au DOM
      • 4.4 Bases de données HTML 5
    • 5. Qt Charts
      • 5.1 Installation
      • 5.2 Licences
      • 5.3 Intégration
      • 5.4 Présentation
      • 5.5 Principe général
      • 5.6 Créer un diagramme en C++
      • 5.7 Créer un diagramme en QML
      • 5.8 Diagramme à barres
        • 5.8.1 C++
        • 5.8.2 QML
        • 5.8.3 Variantes
      • 5.9 Diagramme circulaire
        • 5.9.1 C++
        • 5.9.2 QML
        • 5.9.3 Variantes
      • 5.10 Diagramme à lignes
        • 5.10.1 C++
        • 5.10.2 QML
      • 5.11 Diagramme à surface
        • 5.11.1 C++
        • 5.11.2 QML
      • 5.12 Diagramme à points
        • 5.12.1 C++
        • 5.12.2 QML
      • 5.13 Diagramme à chandelles
        • 5.13.1 C++
        • 5.13.2 QML
      • 5.14 Combiner les diagrammes
      • 5.15 Modifier la légende
      • 5.16 Manipuler les axes
      • 5.17 Utiliser des thèmes de couleurs
      • 5.18 Interagir avec un diagramme
  • API pour les plateformes mobiles
    • 1. Objectifs
    • 2. Intégration
    • 3. L’environnement de développement
      • 3.1 Préparation
      • 3.2 Configuration
    • 4. Exécution d’une application
    • 5. Capteurs
      • 5.1 Utilisation générique
      • 5.2 Obtenir la liste des capteurs disponibles
      • 5.3 Lire les valeurs d’un capteur
      • 5.4 Lecture asynchrone
      • 5.5 Filtrer les données
    • 6. Positionnement
      • 6.1 Cas d’usage
        • 6.1.1 Position courante en C++
        • 6.1.2 Position courante en QML
    • 7. Cartographie
      • 7.1 Cartes et navigation
        • 7.1.1 Afficher un plan en QML
        • 7.1.2 Changer le type de carte
      • 7.2 Lieux et points d’intérêt
        • 7.2.1 Afficher la position courante
        • 7.2.2 Utiliser une adresse postale
        • 7.2.3 Mettre en évidence un point d’intérêt
        • 7.2.4 Calculer un itinéraire
    • 8. Bluetooth
      • 8.1 Cas d’utilisation
        • 8.1.1 Obtenir des informations sur le périphérique Bluetooth
        • 8.1.2 Rechercher des appareils distants
        • 8.1.3 Envoyer un fichier
        • 8.1.4 Échanger en direct entre périphériques
        • 8.1.5 Envoyer des notifications par Bluetooth LE
    • 9. NFC
      • 9.1 Cas d’utilisation
        • 9.1.1 Recevoir des tags NFC
        • 9.1.2 Envoyer un message
    • 10. Achats in-app
      • 10.1 Cas d’utilisation
        • 10.1.1 Enregistrer des achats in-app
        • 10.1.2 Effectuer un achat
        • 10.1.3 Restaurer les achats précédents
  • Qt Test - qualité du code
    • 1. Objectifs
    • 2. Intégration
    • 3. Scénario de tests
    • 4. Tests unitaires et couverture de code
      • 4.1 Les assertions
      • 4.2 Exécution des tests
      • 4.3 Diversifier les données
      • 4.4 Événements GUI
      • 4.5 Tester les performances
    • 5. Non-régression
  • Traduction d’une application
    • 1. Objectifs
    • 2. Cycle de traduction
    • 3. Rendre traduisible son application
      • 3.1 Code source
      • 3.2 Vues
    • 4. Traduire son application
      • 4.1 Langue et région
      • 4.2 Traduction de l'application
        • 4.2.1 Exportation des textes
        • 4.2.2 Traduction des textes
        • 4.2.3 Compilation des traductions
      • 4.3 Intégration des traductions
    • 5. Contexte de traduction
  • Publication d'une application
    • 1. Objectifs
    • 2. Comprendre les licences
    • 3. Les dépendances
    • 4. Créer un installeur universel
    • 5. Créer un installeur spécifique à Windows
      • 5.1 Programme compilé avec Microsoft Visual C++
      • 5.2 Programme compilé avec mingw
    • 6. Créer un installeur pour OS X
      • 6.1 Bundle
        • 6.1.1 Création
        • 6.1.2 Signature
      • 6.2 Fichier DMG
      • 6.3 Paquet d'installation
    • 7. Créer un paquet pour Debian/Ubuntu
      • 7.1 Arborescence
      • 7.2 Fichier de contrôle
      • 7.3 Création du paquet
    • 8. Inclure les plug-ins de Qt
      • 8.1 Windows
      • 8.2 OS X
      • 8.3 GNU/Linux
    • 9. Tester son application
  • Application de A à Z
    • 1. Objectifs
    • 2. Analyse du besoin
    • 3. Analyse technique
    • 4. Codage
      • 4.1 Les tests unitaires
      • 4.2 Les classes C++
        • 4.2.1 Le format de message
        • 4.2.2 La classe Message
        • 4.2.3 L’outillage de formatage des messages
        • 4.2.4 La fabrique à messages
        • 4.2.5 Le Contrôleur réseau
        • 4.2.6 Exposition du Contrôleur en QML
      • 4.3 Les fichiers QML
        • 4.3.1 Le point d’entrée App.qml
        • 4.3.2 La Vue de chat
        • 4.3.3 La Vue des participants
    • 5. Traduction
      • 5.1 Les tests unitaires (suite)
    • 6. Compilation sur smartphone
      • 6.1 Smartphone iOS
      • 6.2 Smartphone Android
      • 6.3 Tests finaux
    • 7. Finalisation et empaquetage
      • 7.1 Préparation de l’application
      • 7.2 Création du projet d’installeur
  • Techniques d'optimisation
    • 1. Objectifs
    • 2. Langages et mode de pensée
    • 3. Notions de C++ indispensables
      • 3.1 Pointeurs et références
        • 3.1.1 Pointeurs C
        • 3.1.2 Références
      • 3.2 Copie d'objets
        • 3.2.1 Copie superficielle (shallow copy)
        • 3.2.2 Copie en profondeur (deep copy)
        • 3.2.3 Copie paresseuse (lazy copy)
        • 3.2.4 Partage implicite
    • 4. Optimisations
      • 4.1 Le modèle objet
      • 4.2 Le cycle de vie des objets
      • 4.3 Les classes optimisées
        • 4.3.1 QByteArray
        • 4.3.2 QStringRef
      • 4.4 Optimiser l’utilisation du processeur
    • 5. Quelques particularités de Qt
      • 5.1 Types primitifs
      • 5.2 Gestion de la mémoire
        • 5.2.1 Cycle de vie
        • 5.2.2 Structures de données
      • 5.3 STL, Boost et Qt
      • 5.4 Réentrance
      • 5.5 Exceptions
    • 6. Lectures complémentaires
    • Index

Auteur

Tristan ISRAËLEn savoir plus

Ingénieur et titulaire d’un MBA (Master in Business Administration), Tristan Israël est développeur professionnel C et C++ depuis 1997 et spécialisé sur Qt depuis 2005. Aujourd’hui architecte et expert en génie logiciel, il apporte son expertise à de grands acteurs de l’industrie de pointe pour l’amélioration de la qualité et de la sécurité de leurs systèmes d’information. Au travers de formations professionnelles sur Qt qu’il dispense au sein du programme CapTronic de Jessica France (CEA et BPI France), il aide les professionnels à acquérir les connaissances nécessaires à la réalisation de produits industriels de qualité. Titulaire des certifications Qt Digia, il partage dans les pages de ce livre sa passion pour cette plateforme qui lui permet de concilier le plaisir d'utiliser les technologies C avec le respect de la qualité fonctionnelle et ergonomique des applications qu'il crée.

Caractéristiques

  • Niveau Expert
  • Nombre de pages 842 pages
  • Parution novembre 2022
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-03796-2
    • EAN : 9782409037962
    • Ref. ENI : EP36QT
  • Niveau Expert
  • Parution novembre 2022
    • HTML
    • ISBN : 978-2-409-03797-9
    • EAN : 9782409037979
    • Ref. ENI : LNEP36QT

Téléchargements

  • Des fichiers complémentaires (327 Ko)