M2i Formation

Découvrez notre formationLibrairie 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.


Cette formation est éligible au CPF : code unique 237067

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

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.

En cliquant le bouton « Accepter », vous acceptez l’utilisation de cookies pour réaliser des mesures d’audiences et vous permettre d’enregistrer vos préférences de navigation. En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies.

Accepter Paramètres En savoir plus