M2i Formation

Langages et développement - Langage C++

Librairie C++ Qt5 et QML - Fonctionnalités avancées

Présentiel

3 jours (21 heures) - CPP-QT5PE

Accueil  ›  Formations Informatique  ›  Langages et développement  ›  Langage C++  ›  Librairie C++ Qt5 et QML - Fonctionnalités avancées

Objectifs pédagogiques

  • Développer des applications pouvant tourner sur Windows, Mac OS, Linux, Android et les systèmes embarqués / temps réel.

Niveau requis

Avoir développé en C++. Avoir suivi la formation CPP-QT5IN "Librairie C++ Qt5 et QML - Initiation" ou connaître les bases de Qt Core, QML et Qt Quick.

Public concerné

Développeurs de logiciels.


Éligible aux financements suivants : Formation éligible au CPF

La Défense08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
La Défense07/10/20191 980 € HTDates proposées dans les agences M2iRéserver

Sessions
planifiées
Sessions
ouvertes
Sessions
confirmées
Réserver
le stage

Metz08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Mulhouse08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Nancy08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Reims08/04/20191 980 € HTDates proposées dans les agences M2iRéserver

Afficher plus de dates

Sessions
planifiées
Sessions
ouvertes
Sessions
confirmées
Réserver
le stage

Caen08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Évreux08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Le Havre08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Lille08/04/20191 980 € HTDates proposées dans les agences M2iRéserver

Afficher plus de dates

Sessions
planifiées
Sessions
ouvertes
Sessions
confirmées
Réserver
le stage

Dijon08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Grenoble08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Lyon08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Saint-Étienne08/04/20191 980 € HTDates proposées dans les agences M2iRéserver

Afficher plus de dates

Sessions
planifiées
Sessions
ouvertes
Sessions
confirmées
Réserver
le stage

Bordeaux08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Orléans08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Tours08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Bordeaux07/10/20191 980 € HTDates proposées dans les agences M2iRéserver

Afficher plus de dates

Sessions
planifiées
Sessions
ouvertes
Sessions
confirmées
Réserver
le stage

Aix-en-Provence08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Montpellier08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Sophia Antipolis08/04/20191 980 € HTDates proposées dans les agences M2iRéserver
Aix-en-Provence07/10/20191 980 € HTDates proposées dans les agences M2iRéserver

Afficher plus de dates

Sessions
planifiées
Sessions
ouvertes
Sessions
confirmées
Réserver
le stage

Certification : M2i Langages de Programmation (+ 120€)

Rappels de Qt / QML

L'intégration entre C++ / Qt et QML / JavaScript et ses limites

La boucle d'évènement de Qt et son impact sur Qt Quick

Problèmes fréquemment rencontrés

  • QQmlListProperty
  • Threading
  • Types non reconnus...

Sujets avancés sur Qt Quick

Création de composants visuels en C++

  • Avec une base Qt Scene Graph : la solution idéale mais limitée
  • Avec une base QPainter : la solution de compatibilité
  • Le composant hybride C++ / QML : une solution largement répandue

Intégrer des images générées ou ne provenant pas d'un fichier local

  • Les "images provider"
  • Les composants spécialisés
    • Texture
    • Dessin procédural
    • FBO OpenGL...
  • Les moyens pour se passer de C++ dans certains cas
    • SVG généré à la volée
    • Canvas...

Optimisation des performances

Les pratiques permettant d'améliorer naturellement les performances du code

  • Le "proxying" des bindings pour éviter les goulets d'étranglement
  • L'utilisation de C++ à la place de JavaScript pour les traitements lourds
  • La résolution des noms en QML : l'épineux problème du "scoping"

Performances graphiques : éléments à prendre en compte

  • Les objets graphiques superflus
  • Les mauvaises utilisations dans les "delegates" d'une vue MVC
  • Les effets de bords des mauvaises utilisations de composants basiques
    • Image
    • Text...

Techniques pour rendre le code plus compréhensible

La programmation orientée flux de données

  • Différences avec l'orienté objet classique / naïf
  • Application des principes en QML et C++
  • Implications sur l'architecture globale

La séparation C++ / QML

  • Bien placer la séparation entre les deux langages
  • Eviter que le code QML soit pollué par de mauvaises utilisations de C++
  • Simplifier le code côté C++ pour qu'il ne soit pas un frein à son utilisation

Eviter les erreurs courantes

  • Rendre le code QML sémantiquement plus clair
  • Fuir les cas où JavaScript peut produire des erreurs silencieuses
  • Limiter au maximum la redondance dans le code, notamment entre C++ et QML

La création de composants personnalisés : l'importance du cloisonnement

  • Empêcher les bugs potentiels par intrusion externe dans le composant
  • Rendre un composant réellement réutilisable et portable pour un gain de temps
  • La spécialisation en cascade : un bon moyen de coder proprement et simplement avec QML

Questions restantes : une fois que la technique pure est réglée

Ces problématiques qui apparaissent en fin de projet, lorsque le produit doit être diffusé

  • La création de "vrais" modules de plug-ins QML
  • Le déploiement sur les plateformes sans système de package (Windows...)
  • La dynamique traduction de l'interface (Qt Linguist)

Certification (en option)

  • Nos tests de validation des compétences font partie intégrante du processus d'apprentissage car ils permettent de développer différents niveaux d'abstractions.
  • Solliciter l'apprenant à l'aide de nos QCM, c'est lui permettre d'étayer sa réflexion en mobilisant sa mémoire pour choisir la bonne réponse. Nous sommes bien dans une technique d'ancrage mémoriel.
  • L'examen sera passé à la fin de la formation.

Les + de la formation

L'examen de certification est en français.