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

  1. #1
    Membre éclairé
    Avatar de sylvain1984
    Homme Profil pro
    Retraité, développeur amateur
    Inscrit en
    Juillet 2023
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité, développeur amateur

    Informations forums :
    Inscription : Juillet 2023
    Messages : 68
    Par défaut Oyez, oyez ! Les machines d'états avec QScxmlStateMachine : simplifier la gestion des états d'un soft.
    Bonjour,

    Qt Creator offre un outil visuel (State Charts) de conception de machines d'états. Il repose sur l'utilisation de la classe "QScxmlStateMachine".

    M'étant longuement cassé les dents sur l'emploi de State Charts et de la classe, et l'utilisant maintenant avec un bonheur, j'ai commis un tuto afin de synthétiser ce que j'ai compris.

    Grand merci à @dourouc05 de m'avoir aidé dans la démarche et pour la validation technique. Grand merci également à @f-leb pour ses corrections textuelles impitoyables !

    Voici le lien vers le tuto :
    QScxmlStateMachine, premiers pas : génération et utilisation de machine d’états avec Qt Creator et son outil State Chart

    Comme précisé dans son introduction, ce tuto ne traite pas de la classe "QStateMachine", qui fait l'objet des cours de Daniel Géron (https://qt.developpez.com/tutoriels/...qstatemachine/, https://qt.developpez.com/tutoriels/...stateparallel/, https://qt.developpez.com/tutoriels/...qhistorystate/).

    Bonne lecture !
    Sylvain

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 853
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 853
    Par défaut
    Bonjour,

    J'ai lu rapidement ton article et la question que je me pose c'est pourquoi ne pas avoir simplement créé deux états ("Base_Modifiee" et "Base_sauvee") ?
    ... que la base soit vide ou non, ça ne change pas grand chose au final, ce qui compte c'est de savoir si l'état actuel de la base a été enregistrée.

    A la limite on pourrait rajouter deux états supplémentaire pour gérer l'initialisation de la base : "Base_inexistante" et "Base_cree" avec "Base_Modifiee" et "Base_sauvee" étant des sous états de "Base_cree".

  3. #3
    Membre éclairé
    Avatar de sylvain1984
    Homme Profil pro
    Retraité, développeur amateur
    Inscrit en
    Juillet 2023
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité, développeur amateur

    Informations forums :
    Inscription : Juillet 2023
    Messages : 68
    Par défaut
    Bonjour boboss123,

    Merci pour ta remarque.

    La raison est que le soft peut être dans deux états : "entretien de la base" ou "accueil public".

    Dans le second cas, je n'autorise le chargement d'une base qu'une seule fois, si elle n'est pas déjà chargée, et j'interdis le vidage de la base. Il faut donc introduire une petite subtilité.

    Depuis j'ai complété la machine d'états en introduisant un état "Init_base" (cf. ci-dessous). À l'entré dans cet état le soft lance une méthode chargée de lire une base si l'utilisateur a choisi de le faire au lancement du soft.

    Nom : SM_SauvegardeBase.png
Affichages : 41
Taille : 62,7 Ko

    Maintenant je ne suis pas un expert et je n'ai trouvé que cette solution pour le moment.

    Je vais creuser dans quelque temps l'aspect "machines parallèles". Sans doute cela va simplifier les choses car je fais actuellement tourner 4 machines différentes...
    Aussi j'envisage un complément au tuto avec un ajout concernant les <log>.

    Bien à toi,
    Sylvain

Discussions similaires

  1. Réponses: 19
    Dernier message: 08/08/2011, 07h53
  2. [AC-2003] probleme avec Planning pour la gestion des présences en entreprise
    Par kesamba dans le forum VBA Access
    Réponses: 19
    Dernier message: 30/10/2010, 22h06
  3. Réponses: 0
    Dernier message: 28/01/2010, 10h53
  4. Impossible d'installer avec l'outil de gestion des paquets
    Par gcvoiron dans le forum RedHat / CentOS / Fedora
    Réponses: 16
    Dernier message: 29/01/2009, 16h57
  5. Réponses: 0
    Dernier message: 27/01/2009, 17h15

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