Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2013-05-02 14:58:30 modifier une variable et l'afficher openFrameworks + ofxUI

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

modifier une variable et l'afficher openFrameworks + ofxUI



Hello,

Je suis en train de faire une interface pour piloter des video projecteurs. J'utilise donc openFrameworks et la librairie ofxUI pour "dessiner" mon interface.

Il y a beaucoup de choses dans cette librairie mais une chose que je n'arrive pas à faire, c'est afficher un texte dont le contenu varie.

En gros j'utilise ofxUILabel pour insérer du texte. J'aimerais avoir une partie fixe et une partie variable. Par exemple :

Projecteur 1 : On

ou

Projecteur 1 : Off

Donc je crée un ofxUILabel "fixe" pour "Projecteur 1 :"
Et je voudrais mettre à la suite un ofxUILabel "variable" avec ma variable qui sera "On" ou "Off" selon les cas.

Il existe d'autres widgets comme ofxUISlider pour lequel on peut spécifier une variable pour afficher la valeur du slider, mais ofxUILabel ne semble pas intégrer cela.

Si quelqu'un utilise ofxUI et/ou à une idée...

merci beaucoup !

Hors ligne

 

#2 2013-05-02 16:44:11 Re : modifier une variable et l'afficher openFrameworks + ofxUI

lilive
membre
Lieu: Toulouse
Date d'inscription: 2011-06-24
Messages: 52
Site web

Re: modifier une variable et l'afficher openFrameworks + ofxUI



Bonjour Marty,

Pourquoi pas un ofxUIToggle ON/OFF ?

Sinon moi j'ai déjà fait ça une fois:

ofxUILabel * displayModeLabel;
displayModeLabel = displayGUI->addLabel("DISPLAY MODE", Display::getModeLabel() + " MODE", OFX_UI_FONT_MEDIUM);

et ailleurs:

displayModeLabel->setLabel(Display::getModeLabel() + " MODE");

Hors ligne

 

#3 2013-05-02 17:32:57 Re : modifier une variable et l'afficher openFrameworks + ofxUI

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Re: modifier une variable et l'afficher openFrameworks + ofxUI



Salut lilive,

Merci pour cette réponse.

lilive a écrit:

Bonjour Marty,
Pourquoi pas un ofxUIToggle ON/OFF ?

Non en fait j'ai bien un toggle pour activer ou non le proj ou le shutter par exemple, mais il s'agit aussi de récupérer des infos du projeteur en envoyant des requêtes. Je passe par le protocole PJLink.

il me faut donc afficher ces infos qui sont les heures et l'état des lampes, le type de projecteur, le modèle etc...

citation :

Sinon moi j'ai déjà fait ça une fois:

ofxUILabel * displayModeLabel;
displayModeLabel = displayGUI->addLabel("DISPLAY MODE", Display::getModeLabel() + " MODE", OFX_UI_FONT_MEDIUM);

et ailleurs:

displayModeLabel->setLabel(Display::getModeLabel() + " MODE");

Ca a l'air censé mais la de prime abord je ne comprend pas trop le principe dans les détails faudrait que je m'y plonge plus précisément. Peux tu donner plus d'info sur ce qui fait quoi et comment ? J'ai une formation de développeur à la base, mais ça fait plus de 10 ans que je ne m'y suis pas collé !

merci en tout cas pour cette première piste

Hors ligne

 

#4 2013-05-02 23:30:41 Re : modifier une variable et l'afficher openFrameworks + ofxUI

lilive
membre
Lieu: Toulouse
Date d'inscription: 2011-06-24
Messages: 52
Site web

Re: modifier une variable et l'afficher openFrameworks + ofxUI



Alors je détaille :

ofxUILabel * label;

Déclare un pointeur sur un ofxUILabel

label = gui->addLabel("NOM LABEL", "Le label affiche ceci", OFX_UI_FONT_MEDIUM);

Ajoute un label nommé NOM LABEL au GUI (un ofxUICanvas, comme dans les exemples de l'addon), initialise sa valeur affichée avec la chaine "Le label affiche ceci", et stocke le pointeur vers cet ofxUILabel dans la variable label.

label->setLabel("Maintenant le label affiche cela");

Modifie la chaine affichée par le label.

Hors ligne

 

#5 2013-05-03 05:35:52 Re : modifier une variable et l'afficher openFrameworks + ofxUI

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Re: modifier une variable et l'afficher openFrameworks + ofxUI



Salut,

ok après plusieurs relectures je vois mieux le principe maintenant wink Je cherchais effectivement à garder une référence de mes labels pour pouvoir les cibler indépendament ailleurs dans le code.

ceci dit ces méthodes existent ? je n'avais pas vu les choses comme cela.

Jusque la pour ajouter un label je faisais un :

gui->addWidgetDown(new ofxUILabel("NOM LABEL", OFX_UI_FONT_MEDIUM));

pourquoi alors dans tous les exemples ils passent par cette méthode plutôt que par un "simple" addLabel() ?

Aussi est-il possible de récupérer la référence (le pointeur) à un label à posteriori plutôt qu'à sa création ? du genre :

label = gui->getLabelId("NOM LABEL");

Dernière modification par Marty (2013-05-03 10:33:32)

Hors ligne

 

#6 2013-05-03 10:50:53 Re : modifier une variable et l'afficher openFrameworks + ofxUI

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Re: modifier une variable et l'afficher openFrameworks + ofxUI



Bon je crois que j'ai trouvé une astuce pour récupérer une référence vers un élément :

ofxUILabel *label = (ofxUILabel*)gui->getWidget("NOM LABEL");

Hors ligne

 

#7 2013-05-03 13:07:59 Re : modifier une variable et l'afficher openFrameworks + ofxUI

lilive
membre
Lieu: Toulouse
Date d'inscription: 2011-06-24
Messages: 52
Site web

Re: modifier une variable et l'afficher openFrameworks + ofxUI



Salut Marty,

Marty a écrit:

ceci dit ces méthodes existent ? je n'avais pas vu les choses comme cela.

C'est vrai que ce serait bien d'avoir la doc des addons. A défaut il faut se rabattre sur la lecture des exemples, ou sur la lecture du code de l'addon, pas toujours commenté...
Pour ma part je me sers aussi beaucoup de l'autocompletion de mon editeur (codeblocks) qui, une fois que j'ai tapé gui-> , m'affiche la liste des méthodes disponibles. Une fois une méthode choisie, il affiche les différents paramètres possibles pour cette méthode.

Marty a écrit:

Jusque la pour ajouter un label je faisais un :

gui->addWidgetDown(new ofxUILabel("NOM LABEL", OFX_UI_FONT_MEDIUM));

pourquoi alors dans tous les exemples ils passent par cette méthode plutôt que par un "simple" addLabel() ?

Je ne sais pas. Peut-être que le code des exemples a été rédigé avant que certaines méthodes existent.

Je fais parfois aussi comme toi pour obtenir le pointeur vers un widget d'après son nom, en effet.
En passant je mentionne aussi 2 autres possibilités de création et récupération du pointeur:

ofxUILabel * label = new ofxUILabel("NOM LABEL", OFX_UI_FONT_MEDIUM);
// ou
// ofxUILabel * label = new ofxUILabel("NOM LABEL", "VALEUR INITIALE", OFX_UI_FONT_MEDIUM);
gui->addWidgetDown(label);

ofxUILabel * label = (ofxUILabel*) gui->addWidgetDown(new ofxUILabel("NOM LABEL", OFX_UI_FONT_MEDIUM));

Hors ligne

 

#8 2013-05-03 13:17:43 Re : modifier une variable et l'afficher openFrameworks + ofxUI

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Re: modifier une variable et l'afficher openFrameworks + ofxUI



Ok merci pour ces précisions wink

Au passage tu utilises codeblocks dans quel environnement ? Pour le taf je suis sous xCode sur Mac mais j'utilise à titre perso Codeblocks également mais sous Linux. Et sous Linux il m'est très difficile de compiler quelque chose avec l'Addon ofxUI ! enfin voila c'était juste pour info

Hors ligne

 

#9 2013-05-03 18:02:47 Re : modifier une variable et l'afficher openFrameworks + ofxUI

lilive
membre
Lieu: Toulouse
Date d'inscription: 2011-06-24
Messages: 52
Site web

Re: modifier une variable et l'afficher openFrameworks + ofxUI



Marty a écrit:

Au passage tu utilises codeblocks dans quel environnement ?

Je suis sous windows 7

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024