Le QML : les IHM déclaratives selon Qt

IHM classique

Qu'est ce qu'une IHM

L'Interface Homme Machine est l'interface qui permet à un humain de contrôler le déroulement d'un programme informatique. C'est par exemple les fenêtres qui permettent de naviguer au sein de ses fichiers, de contrôler la lecture de la musique ou encore de rédiger un document. Les études sur ces IHM sont surtout basées sur l'amélioration de l'ergonomie pour simplifier la prise en main d'un logiciel ainsi que le rendu graphique pour avoir un affichage plus agréable.

Qt, qui développe un framework permet de créer des IHM, étudie depuis sa création la façon dont les utilisateurs se servent des IHM afin que la conception des systèmes soit rapide et simple à mettre en oeuvre. Il assure également une ergonomie, une efficacité ainsi qu'une utilisation simplificiée pour l'utilisateur final en proposant un mode de fonctionnement standard en fonction du système d'exploitation (Windows, Mac, Linux, ...) laissant aux développeurs la possibilité de se focaliser sur la partie métier.

Problématique

Mais par quoi peut-on définir une interface ?

Ces réponses étaient assez simples à donner car les IHM étaient essentiellement présentes sur des ordinateurs. Mais de plus en plus de matériels, comme les téléphones portables ou des bornes en libre service, empêchent une généralisation de la réponse.

Il y a 15 ans

Puissance graphique
Primitives de dessins en 2D
Méthode de contrôle
Clavier
Souris
Son but
Calcul
Création de contenus en local (document texte, tableur, ...)


Interface d'un Apple 2

Aujourd'hui

Puissance graphique
Primitives de dessins en 2D
Rendu 3D animé
Transparence
Méthode de contrôle
Clavier
Souris
Stylet
Multi-touch
Accéléromètre
Son but
Calcul
Création de contenus en local (document texte, tableur, ...)
Création de contenus en ligne (mail, google doc, facebook, ...)
Communication
Collaboration


Interface sur un Surface de Microsoft

Vue par widget

A l'heure actuelle, le paradigme le plus répendu est celui de la vue par widget.


Schéma de la vue par widget

Pour les habitués du Java, un Widget est l'équivalent d'un Panel en Swing.

Les principaux éléments de conception d'interfaces utilisateurs de Qt sont les widgets. Ils peuvent afficher des données, des informations sur leur statut, recevoir les entrées des utilisateurs et devenir un conteneur pour les autres widgets qui devraient être regroupés. Un widget qui n'est pas intégré dans un widget parent est appelé une fenêtre.

Un widget a pour objectif premier l'affichage à l'écran. Il doit également recevoir et gérer les actions de l'utilisateur. Tous les éléments d'une fenêtre (zone de texte, image, tableau, bouton, ...) sont des widgets. Chaque widget est donc chargé de son propre affichage dans la zone qui lui est définie dans la fenêtre.

On obtient donc les propriétés suivantes, les widgets :

Ce mode de fonctionnement existe depuis longtemps, il a été amélioré au fur et à mesure et permet à l'heure actuelle un développement rapide et simple d'un programme. Il se révèle efficace et ergonomique pour les applications classiques et répond tout à fait aux besoins actuels sur les ordinateurs.