IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Tutoriel pour apprendre les bases de la programmation de la bibliothèque QStateMachine [Tutoriel]


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    developpemnt QT, GTKMM, MAO DAO
    Inscrit en
    Juin 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : developpemnt QT, GTKMM, MAO DAO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2018
    Messages : 35
    Points : 515
    Points
    515
    Par défaut Tutoriel pour apprendre les bases de la programmation de la bibliothèque QStateMachine
    Chers membres du Club,

    Je vous propose un tutoriel pour comprendre et utiliser la bibliothèque QStateMachine.

    Il est composé d'un cours en dix étapes et d'un ensemble de dix projets à télécharger depuis un dépôt.

    À la fin de ces cours vous aurez acquis les bases indispensables pour manier efficacement cette bibliothèque.

    Rendez-vous à cette page : Apprendre les bases de la programmation de la bibliothèque QStateMachine

    Servez-vous de cette discussion pour me faire part de vos remarques, commentaires ou d'éventuelles informations.

    Je vous souhaite une bonne lecture, de profitables séances de tests et armez-vous de courage !

  2. #2
    Membre confirmé

    Homme Profil pro
    developpemnt QT, GTKMM, MAO DAO
    Inscrit en
    Juin 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : developpemnt QT, GTKMM, MAO DAO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2018
    Messages : 35
    Points : 515
    Points
    515
    Par défaut un peu de détente avec ensureVisible
    Un peu de récréation :
    Ce qui suit n'a rien à voir avec QStateMachine, mais il permet d'utiliser la méthode ensureVisible de la classe QGraphicsView qui permet un effet visuel dans le déplacement du joueur, et s'intègre facilement dans la structure du programme déjà réalisé.
    Pour réaliser cela, j'ai ajouté l'étape 11 au git QStateMachine, téléchargeable dans le document cité plus haut.
    Actuellement, dans une scène de dimensions plus importantes que la zone graphique, le joueur disparaîtrait dès qu'il aurait atteint la limite de la zone, puisque les frontières de son déplacement sont définies par la dimension de la scène, donc de l'image.
    L'effet assumé par ensureVisible est que la scène reste immobile, tant que le joueur se déplace dans un espace rectangulaire paramétré à l'intérieur de la zone graphique. Dès que ce joueur atteint une des limites de cet espace, il semble se fixer et déclenche le défilement de la scène, jusqu'à ce que un bord de cette scène arrive à la limite de la zone graphique et, alors, le joueur reprend son déplacement jusque la fin de la zone, où il se fixe.
    Comme vous pourrez le constater dans le git téléchargé, j'ai ajouté une image plus grande : motif/fond2.png et modifié quelques fichiers. Ces modifications sont commentées dans les fichiers
    Le plus stupéfiant c'est le peu de modifications nécessaires pour obtenir cet effet :
    Dans la classe Joueur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connect(animationdelobjet,SIGNAL(valueChanged(QVariant)), this, SLOT(LeJoueurBouge(QVariant)));
    et la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void Joueur::LeJoueurBouge(const QVariant &){    pvue->ensureVisible(this,200,200);}
    Bonne détente
    Daniel Génon

  3. #3
    Membre confirmé

    Homme Profil pro
    developpemnt QT, GTKMM, MAO DAO
    Inscrit en
    Juin 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : developpemnt QT, GTKMM, MAO DAO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2018
    Messages : 35
    Points : 515
    Points
    515
    Par défaut cours sur les états parallèles
    Pour parfaire votre apprentissage, vous pouvez suivre le cours sur la mise en œuvre des états parallèles à cette page :
    les états parallèles avec le framework QStateMachine

  4. #4
    Membre confirmé

    Homme Profil pro
    developpemnt QT, GTKMM, MAO DAO
    Inscrit en
    Juin 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : developpemnt QT, GTKMM, MAO DAO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2018
    Messages : 35
    Points : 515
    Points
    515
    Par défaut Adapter les TP aides de cours à QT6.2
    Pour utiliser les projets TP des cours pour la version Qt 6.2, quelques petites modifications suffisent :

    - dans les fichiers ".pro" ajouter la ligne : QT += statemachine.

    - dans les fichiers .h et .cpp où figure la ligne : #include <QtCore/QStateMachine>,
    La modifier en supprimant "QtCore" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <QStateMachine>
    - dans les fichiers .h où figure la ligne : #include <QtWidgets/QKeyEventTransition>,
    La modifier en supprimant "QtWidgets" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <QKeyEventTransition>
    - dans les fichiers .cpp où figure la ligne : #include <QtCore/QSignalTransition>,
    La modifier en supprimant "QtCore" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <QSignalTransition>
    Et la compilation devrait se réaliser sans souci.

    Il se peut que dans l'installation de la version Qt 6.2, la bibliothèque StateMachine ne soit pas attachée, utilisez le logiciel "MaintenanceTool" de Qt pour la télécharger.

  5. #5
    Membre confirmé

    Homme Profil pro
    developpemnt QT, GTKMM, MAO DAO
    Inscrit en
    Juin 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : developpemnt QT, GTKMM, MAO DAO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2018
    Messages : 35
    Points : 515
    Points
    515
    Par défaut mise à jour de la documentation
    Le paragraphe : "Adaptations pour QT 6.2" est ajouté en fin de documentation.
    Merci à Dourouc05

  6. #6
    Membre confirmé

    Homme Profil pro
    developpemnt QT, GTKMM, MAO DAO
    Inscrit en
    Juin 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : developpemnt QT, GTKMM, MAO DAO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2018
    Messages : 35
    Points : 515
    Points
    515
    Par défaut lien pour téléchargement du dépôt Github
    Pour télécharger les projets exemples de la version QT 6.2.1 le dépôt Github est :
    https://github.com/daniel-genon/TPqstatemachineQT6.2

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/09/2018, 18h43
  2. Réponses: 2
    Dernier message: 05/09/2017, 14h44
  3. Réponses: 5
    Dernier message: 15/03/2017, 23h26
  4. Réponses: 3
    Dernier message: 06/10/2016, 20h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo