KaruSystems logo
← Retour aux projets
fms GmbH logo

fms GmbH · Juin 2025

Carte de coaching interactive — Glisser-déposer avec QML & Python

Développement d’une carte de coaching interactive et attrayante avec QML et Python, conçue pour organiser et manipuler visuellement des parcours d’apprentissage. Le projet repose sur une interface fluide de glisser-déposer intégrée à une grille hexagonale personnalisée, permettant une interaction naturelle et un contrôle intuitif.

Visiter le site du client ↗
Carte de coaching interactive — Glisser-déposer avec QML & Python overview

Vue d’ensemble

Ce projet consistait à créer une interface visuelle dynamique permettant aux utilisateurs d’explorer, de déplacer et d’organiser des sujets sur une grille hexagonale afin de reproduire une expérience de coaching sous forme de carte. L’objectif principal était de proposer une couche visuelle convaincante reposant sur un backend structuré en Python, assurant à la fois interactivité et persistance des données. Conçue dans un souci de réactivité et de clarté, l’application illustre la complémentarité de QML pour l’interface utilisateur et de Python pour la logique et la gestion de l’état.

Fonctionnalités clés

  • Interface de glisser-déposer : Développement d’un système de glisser-déposer fluide et réactif permettant de déplacer et de positionner facilement les éléments sur la grille hexagonale.
  • Système de grille hexagonale : Conception et calcul d’une grille hexagonale personnalisée à sommets pointus, permettant un placement structuré mais flexible des sujets de coaching et des ponts.
  • Gestion de l’état par le backend : Toutes les données — notamment les positions des tuiles, les liens et les objets — sont gérées par un backend Python afin d’assurer l’évolutivité et la persistance des données.
  • Navigation avec zoom et déplacement : Mise en place d’un zoom et d’un déplacement fluides simulant une caméra au-dessus de l’espace de coaching et offrant un contrôle spatial intuitif.
  • Connexion des ponts et des sujets : Les connexions visuelles entre les sujets sont générées dynamiquement et permettent de représenter des structures de coaching à plusieurs niveaux.
Carte de coaching interactive — Glisser-déposer avec QML & Python screenshot 2
Carte de coaching interactive — Glisser-déposer avec QML & Python screenshot 3

Technologies utilisées

  • QML & Qt (Python) : Conception de l’interface avec QML, soutenue par un backend Python robuste via PySide.
  • JavaScript (intégré à QML) : Utilisé pour les calculs de mise en page et les utilitaires de l’interface.
  • Rendu ShapePath personnalisé : Création de formes hexagonales spécifiques, notamment de tuiles avec dégradés pour représenter les thèmes de l’océan et de la terre.

Défis et enseignements

Le principal défi consistait à créer une expérience de glisser-déposer intuitive au sein d’une disposition hexagonale tout en conservant un alignement précis, une gestion correcte des couches et un contrôle fiable de l’état. La mise en œuvre d’un zoom fluide et du déplacement de la caméra a nécessité des transformations matricielles précises, notamment lors du redimensionnement autour du curseur. L’intégration des interactions de l’interface avec la logique du backend de manière modulaire et extensible a renforcé mon expertise en architecture logicielle et confirmé l’importance d’une séparation claire entre logique et interface.

Résultat

Le résultat final est une carte visuellement riche et hautement interactive pouvant servir à des outils de coaching, d’apprentissage ou de simulation. L’association d’une interface visuelle soignée et d’une structure backend solide constitue une base fiable pour ajouter des fonctionnalités telles que du contenu spécifique à chaque utilisateur, le suivi de progression ou la collaboration en réseau. Ce projet illustre comment une architecture d’interface réfléchie et des mécanismes fluides de glisser-déposer peuvent améliorer l’expérience utilisateur.

Vous avez un défi similaire ?

Expliquez-nous ce qui ralentit votre activité et trouvons ensemble la voie la plus claire.

Démarrer une conversation