[C/Unix] XWindow ==> afficher un int

XWindow ==> afficher un int [C/Unix] - C - Programmation

Marsh Posté le 19-01-2004 à 10:36:13    

comment afficher un int avec XWindow...?

Reply

Marsh Posté le 19-01-2004 à 10:36:13   

Reply

Marsh Posté le 20-01-2004 à 19:20:03    

comment ça?
dans la console ou dans une fenêtre X?
donne plus de précisions...

Reply

Marsh Posté le 20-01-2004 à 19:25:47    

bonjour!
 
alors je voudrais une fonction du genre: XDrawInt ou XDrawDouble pk pas :-p!
 
pr l'instant j'ai fais une fonction qui me transforme l'int en chaine et j'affiche la chaine...:-/
 
puis sinon, vous savez pas pk mon expose ne veut pas fonctionner qd je fais ca:
 
while (1)
{
...
   if (expose)
      {
         While (str = getnextline(fd))
             XDrawLine(....);  
      }
}  
 
qd je mets pas la boucle c niquel...
 
merci pr tout

Reply

Marsh Posté le 20-01-2004 à 19:29:40    

pourquoi s'embéter alors que tu peux combiner un sprintf et un XDrawText (ou XDrawString) [:spamafote]
 
pour ton deuxième problème, à mon avis c'est le fait de mettre une boucle infinie "while(1)": tu ne sors jamais de ta boucle, donc tu ne rends jamais la main au système pour la gestion des évènements (y compris les refresh,redraw etc.)

Reply

Marsh Posté le 20-01-2004 à 19:32:43    

tu fais comment pr le sprintf ? tu aurais po un exemple?
 
sinon, je ne pense ca que ce soit le while (1) car ca marche bien avec d'ab, qd je mets mon XDrawLine() en dehors du while qui lis mon fichier ca marche...je ne vois pas pk :-/?
 
je te remercie pr ton aide

Reply

Marsh Posté le 20-01-2004 à 19:33:41    

man sprintf

Reply

Marsh Posté le 20-01-2004 à 19:35:56    

merci taz ;-)! sauf que ds le man ils disent qu'il retourne des int, dc je ne vois pas comment ;-)

Reply

Marsh Posté le 20-01-2004 à 19:36:39    

bah si t'as un chaîne de caractères d'allouée tu fais:
sprintf(maChaine,"%d",monInt) [:spamafote]
 
pour ton problème de while il faudrait regarder à quel endroit tu fais ta boucle d'évenements: si ton while(1) est ta boucle alors le problème est qu'il manque un ordre de refresh quelque part ou un truc dans le genre. Par contre si tu appelles XtAppMainLoop pour ta boucle d'évènements bah là t'as un problème boucle infinie +boucle système

Reply

Marsh Posté le 20-01-2004 à 19:36:54    

ben tu vois printf ? ben pareil sauf que au lieu de sortir sur l'écran, ça tombe dans une chaîne de caractères

Reply

Marsh Posté le 20-01-2004 à 19:41:01    

merci, mon while est ma boucle en effet.
 
mais je capte pas car ca marche qd je fais :
 
if (expose)
{
for (int nb = 0; toto[nb]; nb++)
   XDrawLine(...);
}
 
ou ca aussi ca marche bien sur:
 
if(expose)
{
   XDrawLine(...);
}
 
mais ca quequette :
 
if (expose)
{
   while (str = getnextline(fd))
      {
           XDrawLine(...);
      }
}

Reply

Marsh Posté le 20-01-2004 à 19:41:01   

Reply

Marsh Posté le 20-01-2004 à 19:49:03    

c'est ton "str = getnextline(fd)" qui foire [:spamafote]
vu que je ne connais pas cette fonction je ne vais pas pouvoir beaucoup t'aider là

Reply

Marsh Posté le 20-01-2004 à 19:51:42    

dac dac, merci pr ton aide

Reply

Marsh Posté le 20-01-2004 à 19:57:12    

au fait, une question bête, t'es bien sûr que c'est "str = getnextline(fd)" et pas "str == getnextline(fd)"?
c'est con, mais un "=" au lieu d'un "==" c'est vite venu...

Reply

Marsh Posté le 20-01-2004 à 19:59:55    

vi, c bien ca, c une fonction qui renvoie ligne par ligne le contenu d'un fichier

Reply

Marsh Posté le 20-01-2004 à 21:22:38    

et str c'est quoi? c'est déclaré comment?
c'est bien un char *? pas un char[]?
si c'est un char *, il ne pointe pas au moins vers quelque chose d'alloué? (t'as pas fait de malloc sur str?)

Reply

Marsh Posté le 20-01-2004 à 21:23:46    

mon getnextline le malloc, dc c'est un char *

Reply

Marsh Posté le 20-01-2004 à 21:43:55    

alors à vue de nez je dirais que c'est ta fonction getnextline qui ne renvoie jamais null [:spamafote]

Reply

Marsh Posté le 20-01-2004 à 21:46:29    

dc la boucle par en couille :-)!
 
dac, je vais voir a ca, je te remercie de ton aide

Reply

Marsh Posté le 21-01-2004 à 10:46:37    

bon, apparement on peut tt charger ds une fenetre, la copier ds une autre une fois que c finit et gerer l'expose sur cette derniere?

Reply

Marsh Posté le 22-01-2004 à 18:17:57    

bon ben j'ai trouve, merci pour le reste ;-)!  
pour ceux que ca interesse, il faut creer ce qu'on appelle un pixmap, ca travail en "local" et apres on envoie tt au serveur X ;-)!
plus aucun pb d'expose!

Reply

Marsh Posté le 22-01-2004 à 18:44:38    

husiana a écrit :

bon ben j'ai trouve, merci pour le reste ;-)!  
pour ceux que ca interesse, il faut creer ce qu'on appelle un pixmap, ca travail en "local" et apres on envoie tt au serveur X ;-)!
plus aucun pb d'expose!


 
euh bah ouais, c'est quand même moins gourmand en resources que de redessiner ton graphique à chaque évènement [:spamafote]
c'est un peu la base ça... enfin bon...

Reply

Marsh Posté le 22-01-2004 à 19:34:26    

vi, et tu sais pas la meilleure ?  
c mon premier prog en X Window :-)
 
dingue non?

Reply

Marsh Posté le 22-01-2004 à 19:46:30    

je voulis vous demander, en tant que nwebee, je fais un XFillPolygon, mais mon polygon n'a pas de bordure, et j'en veux :-p! comment faire? j'ai cree mon GC mais je ne sais pas le modifier...est-ce ca?
sinon y'a pas un XDrawPolygon...?
 
merci de votre aide

Reply

Marsh Posté le 22-01-2004 à 20:03:52    

screen_colormap = DefaultColormap(dpy, DefaultScreen(dpy));
      XAllocNamedColor(dpy, screen_colormap, "yellow", &yellow, &yellow);
      xgcv.foreground = yellow.pixel;
      xgcv.fill_style = FillStippled;
      xgcv.fill_rule = WindingRule;
      xgcv.join_style = JoinRound;
      gc1 = XCreateGC(dpy, win, GCForeground, &xgcv);
 
 
ca ca marche pas...pttt!

Reply

Marsh Posté le 22-01-2004 à 22:26:47    

euh... qu'est-ce qui ne marche pas exactement?
parceque là tu n'as fait QUE créer ton GC... maintenant il s'agit de balancer la purée

Reply

Marsh Posté le 22-01-2004 à 22:28:15    

ben apres je fais un XFillPolygon(...,...,gc1,......);
 
et j'ai le remplissage mais pas les bordures :-/

Reply

Marsh Posté le 22-01-2004 à 22:29:46    

comment ça?

Reply

Marsh Posté le 22-01-2004 à 22:31:04    

ben je voudrait qu'il me dessine des contours, et pas qu'un contenu, c possible?

Reply

Marsh Posté le 22-01-2004 à 22:31:33    

tu veux genre les contours en noir et le contenu en rouge?

Reply

Marsh Posté le 22-01-2004 à 22:31:51    

oui :-)

Reply

Marsh Posté le 22-01-2004 à 22:34:06    

il faut pas que je refasse un drawline derriere qd mm :-/ ?

Reply

Marsh Posté le 22-01-2004 à 22:34:20    

bah faut le faire en 2 fois...
XDrawPolygon pour le contour
XFillPolygon pour le contenu

Reply

Marsh Posté le 22-01-2004 à 22:36:28    

mais le XDrawPolygon je trouve pas le man :-/

Reply

Marsh Posté le 22-01-2004 à 22:39:45    

pardon, c'est XDrawLines il me semble

Reply

Marsh Posté le 22-01-2004 à 22:41:05    

ah ok, ben c ce que je fais, mais ca se supperpose et on vois pas toutes les lignes, a des fois c le polygone qui se mets devant
on peut pas gerer la profondeur ac le GC ?

Reply

Marsh Posté le 22-01-2004 à 22:43:09    

tu peux gérer les masques, et tracer en XOR par exemple...

Reply

Marsh Posté le 22-01-2004 à 22:45:17    

il va me faire le reste du polygon qd mm si je fais ca? vu que c sencé se supperposer ?

Reply

Marsh Posté le 22-01-2004 à 22:45:47    

vu que c un XOR, ils ne pourront pas etre tt les deux au mm endroit...?

Reply

Marsh Posté le 23-01-2004 à 10:25:28    

triste, ce matin je viens de faire un rm * ../ au lieu de faire un cp * ../
 
j'etais en train de recoder xfig...il etait presque finit...:-/!
 
il me manquait plus qu'a gerer les couleurs...
 
voila le seul import root hous.jpg qu'il me reste :-p :
 
http://etudiant.epitech.net/~husian_c/house.jpg

Reply

Marsh Posté le 23-01-2004 à 10:30:27    

sincères condoléances [:spamafote]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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