Largeur d'un Text box [Tk] - Perl - Programmation
Marsh Posté le 26-05-2006 à 23:51:23
tu peux recuperer le string lui meme, et utiliser length() pour avoir sa longueur
Marsh Posté le 27-05-2006 à 00:07:55
j'y est penser, mais malheureusement, la ligne 1 ne designe pas la premiere ligne afficher sur mon Text box, mais plutot la premiere ligne qui se termine par un "\n", c'est a dire que si tout le text ne contient aucun retour a la ligne, tout le texte est la ligne 1
Marsh Posté le 27-05-2006 à 16:08:54
il me semble que tu a de quoi mesurer en pixel la largeur d'une chaine donnée avec une font donnée dans Tk::Font, donc tu pourrais retomber sur tes pieds avec ca
Marsh Posté le 27-05-2006 à 19:09:45
Merci pour ta reponce
J'ai tanté cette solution :
Code :
|
mais malheureusement, la valeur de retour est toujour inferieure (la difference varie d'apres la largeur du text box)
je me demande si je ne devrait pas recommancer mon projet en Java .
Marsh Posté le 27-05-2006 à 20:02:13
Si tu veux rester en perl tu a d'autre GUI: GTK2 (mal documenté, il faut utiliser la doc de la lib C), WxWidget, Win32 GUI, etc.
Mais explique exactement ce que tu veux faire, car je ne comprend pas tout: tu dis vouloir afficher une ligne mais tu a des \n ?
Si c'est juste une ligne pouquoi ne pas utiliser en simple entry?
Esque le fait d'utiliser une font à espacement constant pourrait t'aider?
Marsh Posté le 27-05-2006 à 20:34:33
Voila en fait ce que je veut faire :
pour faire cet effet, je commance par recuperer le texte d'un fichier, puis j'enleve tout les \n, les retoures a la lignes se font donc automatiquement lorce que le texte attaint la largeur maximale du text box.
Donc pour pouvoir afficher le texte comme dans l'image du haut, il me faut la largeure du text box , suposont que ce soit 40 caracteres.
je prend les premieres 40 caracteres de mon texte et je creer une autre chaine de caracteres formees de '-' pour chaques lettre du texte originale, ou d'un espace pour les espaces. Ensuite, pour resoudre un cryptogramme, si je veux echanger les E par des n, j'echangerait les '-' sous les E par des n.
mais pour que le texte ne soit pas decaller, il faut que je sache la largeur du text box, sinon les n (par exemple) ne seront pas sous les E.
un peu difficille a expliquer mais j'espert que tu aura compris, en tout cas merci
PS: j'utilise Tk parce que je la connait deja, et surtout parcequ'elle est installer par defaut sur la plupart des distributions de perl (ActiveState et ma distrib standard sur mandriva 10).
Marsh Posté le 27-05-2006 à 21:05:13
je ne peux pas voir ton image (visiblement il faut etre membre de developpez.net)
Marsh Posté le 27-05-2006 à 21:37:48
ok je vois
tu dis que fontMeasure te retourne toujours un truc un peu inferieur, mais pourquoi ne pas forcer le retour ligne en ajoutant un petit \n, en gardant quelques characteres de marge sur la droite de ta textbox ?
Marsh Posté le 27-05-2006 à 21:39:14
en plus comme ca ca te permet de garder tes groupes de 5 lettres sur une meme ligne
Marsh Posté le 27-05-2006 à 23:00:49
effectivement, sa me semble une bonne option.
en tout cas merci beaucoup pour ton aide
PS: apres avoir tester sous linux, je croi que je vais opter pour java, car le resulta est totalement faux.
Marsh Posté le 28-05-2006 à 00:45:14
ca marche sous windows et non sous linux?
A mon avis c'est du à des versions differentes de Tk
Marsh Posté le 28-05-2006 à 01:07:23
ce genre de truc peut aussi arriver si la machine windows est configurée en "grandes polices" (comme c'est souvent le cas des portables)
Marsh Posté le 05-06-2006 à 19:35:20
Une personne a fini par me trouver une solution sur un news groupe, je la poste afin que tout le monde puisse en béneficier :
Code :
|
Merci a toi propos pour t'etre pancher sur mon probleme
Marsh Posté le 26-05-2006 à 23:07:38
Bonjour
Je suis en train de developper une sorte de "Crypto" notpad, un editeur de base pour resoudre des cryptogrammes.
Je souhait afficher dans un text box une ligne de texte chiffrer et en dessou un "-" pour chaque caractere encore non deviné, ou sinon la lettre qui lui correspond.
Pour cela, je dois recuperer la largeur du textbox en caracteres, pour afficher la ligne de text puis la ligne du genre "---e-- --e-".
je sai comment recuperer la largeur en pixel, mais je n'est rien trouver pour transformer les pixels en unites de caracteres, ni avec google, ni dans la doc de Tk.
Je vous remercie d'avance
Message édité par etranger le 26-05-2006 à 23:25:40