interface utilisateur

interface utilisateur - C - Programmation

Marsh Posté le 06-12-2006 à 18:33:53    

Bonjour,
J'ai un programme qui tourne tres bien en ce moment, le probleme c est que la configuration se fait au moyen d un fichier text qui est lu en debut d'execution... et j'aimerai avoir une interface graphique pour que l utilisateur puisse faire ca plus facilement.
Pour le moment je voudrais juste avoir une barre qui s affiche et permet a l utilisateur de selectioner une valuer entre 0 et 50. J'ai cherche un peu sur le net differentes options et je me suis interesser a OSF/MOTIF.
Premiere question: Est ce que vous me conseiller autre chose que ca sachant que je veux faire un interface le plus basique possible?
Deuxieme question: J ai fait une petite fonction qui affiche ma barre, mais ca boucle en infinie et ne redonne jamais la main au programme pour le reste de l'execution. Le code est le suivant:
 

Code :
  1. #include  <Xm/Xm.h>
  2. #include <Xm/Scale.h>
  3. void interface_set_valeur(Widget widget, int data,XmScaleCallbackStruct *scale_struct)
  4. {
  5.  
  6.   printf("La valeur est %d\n", scale_struct->value); 
  7. }
  8. void interface_init(int argc, char **argv)
  9. {
  10.   Widget        top_wid, scale;
  11.   XmString      title;
  12.   XtAppContext  app;
  13.   void          scale_cbk();
  14.   top_wid = XtVaAppInitialize(&app, "Scale", NULL, 0,&argc, argv, NULL, NULL);
  15.        
  16.   title = XmStringCreateSimple("Ma valeur" );
  17.   scale = XtVaCreateManagedWidget("scale", xmScaleWidgetClass, top_wid,XmNtitleString,   title, XmNorientation,    XmHORIZONTAL, XmNmaximum, 50, XmNminimum, 0,  XmNdecimalPoints, 0, XmNshowValue,     True, XmNwidth,  200, XmNheight, 100, NULL);
  18.  
  19.   XtAddCallback(scale,XmNvalueChangedCallback, interface_set_valeur, NULL);
  20.   XtRealizeWidget(top_wid);
  21.   XtAppMainLoop(app);
  22. }


 
Je pense que ca boucle parce que je ne passe pas le bon event dans XtAppMainLoop (j en passe pas donc event null), mais je ne suis pas sure de ce qu il faut passer, et meme en lisant le man et la doc je suis dans le doute.
 
Derniere question: Est ce qu il est possible d'avoir une barre toujours visible qui change ma valeur en cours d'execution (genre volume dans une application audio, on change le volume mais ca n'arrete pas la lecture du fichier audio!), et si oui comment?
 
Desole pour ce long post et merci d'avance
 

Reply

Marsh Posté le 06-12-2006 à 18:33:53   

Reply

Marsh Posté le 11-12-2006 à 21:09:43    

niemad a écrit :

Premiere question: Est ce que vous me conseiller autre chose que ca sachant que je veux faire un interface le plus basique possible?
Derniere question: Est ce qu il est possible d'avoir une barre toujours visible qui change ma valeur en cours d'execution (genre volume dans une application audio, on change le volume mais ca n'arrete pas la lecture du fichier audio!), et si oui comment?


 
Moi, quand j'ai voulu créer ma première IHM, je me suis mis à QT mais c'est une question de choix et faut programmer en C++. Mais ensuite, tu as à ta disposition une foule d'outils et des méthodes associées.
Par exemple, concernant ta barre toujours visible qui change la valeur pendant l'exécution, QT permet de faire cela avec le mécanisme des signaux/slot. Tu plantes un objet "barre" QT qui contient de façon intrinsèque le signal "ifMoved" et dans ton code, tu associes le signal "QBarre::ifMoved()"  à une fonction que tu définis. Et dans cette fonction qui ne sera appelée que si un mouvement est détecté sur la barre, tu modifies les valeurs qui t'intéressent selon la valeur de la barre auquelle tu as évidemment accès...


Message édité par Sve@r le 11-12-2006 à 21:13:01

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed