Initiation à Qt

Présentation

  • Description : Qt est une librairie C++ permettant le développement d'applications focntionnant sur Windows, MacOsx,Linux, Android, MacOsX et cartes linux embarquées.
  • Objectifs :
    • Savoir développer une application en C++ via la librairie Qt5
    • Connaître les différents types définis par Qt5
    • Savoir utiliser QtCreator

Public

  • Public :
    • Développeurs informatiques en C++/Qt
  • Prérequis : Savoir développer en C++

Organisation matérielle

  • Durée : 3 jours (21 heures)
  • Horaires : 9h00-12h00 13h00-17h00
  • Rythme : Continue ou fragmentée
  • Mode : Inter ou intra entreprise
  • Lieu : Sur site ou en centre de formation

Environnement

  • Moyens pédagogiques : Document de support de cours en PDF (323 pages) + document PDF correction d'exercices (26 exercices)
  • Moyens techniques : Équipements sous Windows,Linux ou MacOsX
  • Moyen humains : Développeur diplômé troisième cycle plus de dix ans d'expérience en développement et formation

Garanties qualités

  • Contrôle de la bonne exécution : Fiche d'appréciation remplie par les stagiaires
  • Méthode d'évaluation : Fiche d'évaluation

Programme

Présentation

Histoire de Qt

  • L'histoire de cute Qt
  • Qt de sociétés en sociétés
  • Par le passé : une jungle de produits
  • Aujourd'hui : un seul environnement

Rappels C++

  • C++ Rappel : définition de classe
  • C++ : CPP associé
  • C++ : parfois les deux en un
  • Rappels C++ Encapsulation
  • Initialisation de variables

QtCreator

Prise en main

  • QtCreator
  • Ouverture de projet / Modèles
  • Projets Quick et autres modèles
  • Le mode console (Linux)
  • Barre des tâches

L'aide

  • L'aide : Qt assistant intégré
  • L'onglet d'aide
  • Aide autre
  • Quelques conseils pour lire une page d'aide

Aide Freenode

  • L'aide sur IRC/Freenode
  • L'aide par IRC
  • Logiciels IRC
  • Exemple de canal
  • Liste des canaux
  • IRC : Présentation du réseau Freenode

Usages

  • Freenode : Nickserv
  • Quelques règles de bon sens
  • Pastebin
  • Imagebin
  • Les canaux freenode spécialisés C++/qt

Utilisation

Édition de texte

  • Éditeur de texte
  • Caractéristiques de l'éditeur
  • Quelques raccourcis clavier

Les fichiers en présence

  • Les différents fichiers d'un projet
  • Fichier mainwindow.h
  • Fichier mainwindow.cpp
  • Fichier mainwindow.ui
  • fichier moc_mainwindow.cpp
  • Fichier Makefile

fichier.pro

  • qmake
  • qmake détail
  • Gestion de la compilation

Objets Qt

Classes de base

  • Les principales classes
  • QCoreApplication
  • QApplication

Classes présentes dans le Designer

  • Présentation de la partie designer
  • Designer
  • QMainWindow
  • Qmenu
  • Les objets d'une interface

QLineEdit

  • Barre de sélection de mode et layout
  • Mode buddy
  • Layout et les spacers
  • Splitter
  • QtDesigner plus loin

Slots et signaux

  • Slots et signaux
  • En pratique
  • Raccourcis Designer
  • Signaux avec arguments
  • Cas de disconnect
  • Déclaration de Signaux
  • Emission d'un signal
  • Nouvelles notation du connect en Qt5

Classes Qt

Les types de base

  • Les chaînes QString
  • QString méthodes principales
  • qDebug
  • QList
  • QStringList
  • QVariant

Classes QMap,QDialog, QMessageBox, QWidget, QFileDialog

  • QMap et QHash
  • QFile QDir QFileInfo
  • QDialog
  • De l'importance du this
  • QMessageBox
  • QFileDialog

Classes QRessources, QSettings

  • QResources
  • Utilisation d'une ressource
  • QFont
  • QSettings
  • QSettings (suite)

QRegexp

  • Présentation
  • Caractères
  • Premiers exemples
  • Exemples,Autres exemples
  • Ensembles
  • Captures
  • QRegExp : expressions régulières

Classes évoluées

Bases de données

  • Bases de données compatibles Qt
  • Intérêt
  • Notions de lanqage SQL
  • QSqlDatabase
  • SqlQuery
  • Facilités QSQLQuery

Modèle Vue Controleur

  • Modèle MVC QSqlModel
  • Récupération des informations du modèle
  • Les Views
  • QSortFilterProxyModel
  • Les équivalents élément

Plus loin avec les MVC

  • Quelques points à savoir sur le modèle vue contrôleur
  • Construire son propre modèle
  • Le paramètre role
  • Les delegates

QNetWork

  • QNetWorkAccessManager
  • Exemple de traitement d'un fichier reçu
  • Suivre les liens
  • QTcpServer

Debug

Présentation

  • Débugage
  • Méthodes de débugage
  • Débugage pas à pas
  • Poser un point d'arrêt
  • Inspecter le programme

Point d'arrêt

  • Point d'arrêt : plus loin
  • gdb : point d'arrêt
  • Break avec liste de commandes
  • Autres points d'arrêts

Debuguer via un core dump

  • Debug après plantage : core dump
  • Tuning de génération du core
  • Debug Core Qt

Debuguer à distance

  • Debug croisé
  • Installation sur l'équipement distant
  • Mise en route sur l'équipement host
  • Débug croisé à partir de QtCreator

Images

Exemple éditeur de texte

  • Exemple de dérivation de classe
  • Mise en oeuvre
  • Évènements
  • Définitions
  • QPaintEvent
  • Événements souris
  • Événement clavier

QPainter

  • Présentation QPainter
  • Les directives graphiques de QPainter
  • Crayon (QPen)
  • Pinceau (QBrush)
  • Police (QFont) et Coordonnées
  • Opération de transformation

Les images

  • Généralité
  • Les classes Images
  • Conversions d'un type à l'autre
  • Lectures écritures aux formats d'image
  • Exemple de création de fichiers Image

GraphicsScene

  • Présentation
  • QGraphicsProxyWidget
  • Utilisation à partir d'un QGraphicsView
  • Coordonnées sur une scène

Divers

Classes et cast

  • Extension un mode full screen
  • Les casts en C++
  • Les Cast en Qt
  • Les pointeurs intelligents en Qt

Feuille de style, animation et timer

  • Feuille de style
  • Exemples de feuilles de style
  • QAbstractAnimation
  • Animation d'un objet
  • Groupement d'animation
  • QTimer

Processus et Thread

  • QProcess
  • QThread
  • Mécanisme QThread
  • Méthode QObjet relatives aux threads

QObject

  • La classe QMetaMethod
  • La classe metaObject
  • Les properties
  • La classe QObject
  • QObject et signal
  • Méthode QObjet relatives aux threads


Dates et tarifs

Inter entreprises

Intra entreprise

  • Région parisienne : 3900 HT
  • Autres zones : 3900 HT + Frais de déplacement
  • Dates : Consultez moi

Centres de formation partenaires