© 2011-2019 Phalanx

Accueil > Blog > Single post

Création des interfaces élégantes : tout est dans le contexte !

13/12/2018

Pour créer des interfaces modernes et elegantes, tout est dans le contexte, bon je devrais plutôt dire "tout est dans le menu contextuel" ! Et oui, LabVIEW permet la création des menus contextuels qui peuvent s’avérer très pratiques. Ces menus permettent, à toute IHM qui se respecte, d’ajouter des fonctionnalités rapidement sans polluer l'application de milles et un boutons. Tu auras sûrement remarqué qu’un clic droit sur un objet d’une face-avant, en cours d’exécution, fait apparaître des menus contextuels prés construits. Figure-toi que tu peux tout à fait créer des menus contextuels personnalisés de toute pièce ! Tu peux aussi modifier dynamiquement TOUS les menus pour faire apparaître ou supprimer certaines fonctionnalités.


Trop de menus tue les menus !

Si tous ces menus te dérangent (et du coup cet article par la même occasion), tu peux très bien les désactiver pour un objet particulier. L’option Disable est située dans la catégorie Advanced > Run-Time Shortcut Menu. Pour tous les désactiver il te suffit de décocher l’option Window appearance > Customize > Allow default run-time shortcut menu. Evidemment même si ces menus clics droits sont pratiques il faut éviter d’en avoir absolument partout ! On évitera aussi d’y placer les fonctionnalités majeures.
 

Créer un menu personnalisé

Tu peux créer ton menu personnalisé tout simplement par un clic droit sur ton objet de face-avant. La catégorie Advanced > Run-Time Shortcut Menu te permet cela. L’éditeur de menu va alors s’ouvrir. Il va te permettre de créer ton menu personnalisé. Je t’encourage à jouer avec cet éditeur pour se rendre compte des possibilités. Tu peux par exemple placer des séparateurs et rassembler des options en sous-catégories ! N’oublie pas que tu pourras gérer ton menu dynamiquement dans ton code même s’il est personnalisé.

 

Dans l’éditeur, tu retrouveras deux champs très importants ! Le champ Item Name est le nom que tu verras s’afficher dans le menu. Le champ Item Tag est celui qui apparaîtra dans ton code ! 

 Éditeur de menu contextuel

 

Utiliser et gérer ses menus

Tu peux gérer efficacement et dynamiquement tous tes menus contextuels grâce à la palette dédiée présente de base sur LabVIEW. La palette est située dans Programming > Dialog & User Interface > Menu. Comment ça gérer dynamiquement ? Dynamiquement ça veut dire que pendant que ton code tourne, tu peux ajouter des options ou en supprimer de ton menu ! Les menus par défaut comme les menus personnalisés sont gérables dynamiquement. Tout cela c’est bien beau mais cette palette tu ne peux pas l’utiliser n’importe comment ! Regarde ci-dessous comment moi je l’utilise (et donc comment il faut l’utiliser !). 


Je te conseille d’utiliser un modèle de type producteur-consommateur avec événement, c’est un modèle très classique. Le modèle que te propose LabVIEW quand tu démarres un VI est un bon départ.

 

Regarde ci-dessous une architecture simple pour la gestion de tes menus avec l’exemple d’un bouton:

  1. Dynamiquement changer les options : Utilise l’événement Shortcut Menu Activation ? associé au contrôle pour lequel tu souhaites modifier son menu. Par exemple tu peux vouloir rajouter des options si à cet instant précis certaines conditions sont réunies. Tu peux alors utiliser les VIs Insert/Delete Menu Items pour y insérer ou supprimer des options avant qu’il soit montré à l’utilisateur. Tu peux encore griser certaines options ou leur attribuer un raccourci clavier grâce à Set Menu Item Info

  2. Transmettre l’option sélectionnée : Utilise l’événement Shortcut Menu Selection (User) pour récupérer l’Item Tag associé et le transmettre pour traitement. Si tu as dans ton menu des options déjà proposées par LabVIEW, tu n’as même pas besoin de le gérer c’est automatisé.

  3. Réalise l’option : Selon l’Item Tag que tu as reçu, effectue l’action que tu souhaites !

 Exemple de structure pour gestion de menus contextuels

L’auteur

Florian MARTIN est ingénieur en électronique et depuis 2017 Développeur Certifié LabVIEW au sein de Phalanx. 
 
Please reload

En avant

Renouvellement de l'accreditation « CIR » 2018-2020

February 11, 2019

1/5
Please reload

Messages récents