Bonjour à tous,
je cherche à faire un label qui contient une phrase dont les mots ne sont pas forcément de la même couleur. Est-ce possible ? Si non, y'a-t'il une façon pour le faire ?
Merci pour votre aide![]()
Bonjour à tous,
je cherche à faire un label qui contient une phrase dont les mots ne sont pas forcément de la même couleur. Est-ce possible ? Si non, y'a-t'il une façon pour le faire ?
Merci pour votre aide![]()
Bonjour,
je pense qu'on peut faire quelque chose de ce genre
Jluc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 # -*- coding: cp1252 -*- from Tkinter import * root=Tk() can=Canvas(root) can.pack() textecouleur=(("bonjour","red"),("comment","green"),("ca","cyan"),("va","black")) for tc in textecouleur: Label(can,text=tc[0],fg=tc[1]).pack(side=LEFT) root.mainloop()
Ca marche parfaitement![]()
mais ça ne marche que pour un cas fixe.
Le problème c'est que je dois écrire dans une zone avec retour à la ligne si ca atteint un des bords et surtout il faut que je puisse détruire ces labels ou au mieux les modifier car le texte que je mets dedans, change souvent.
exemple :
début du programme : "comment ça va"
après : "ça a l'air d'aller bien"
après : "blabla bla blaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
blaaaaaaaaaa blaaaaaaaaaaa"
bref, ça ne me semble pas possible avec une suite de label![]()
on peut toujours compliquer, tout est possible.
Voir par exemple "Apprendre à programmer avec Python"
de Gérard Swinnen comme je suis en train de le faire.
http://www4.fnac.com/Shelf/Article.aspx?PRID=1621826
Pour info, c'est tout à fait possible avec un le composant Text et sa fonction tag.
On écrit dans le champ text :
On créé 2 tag :
Code : Sélectionner tout - Visualiser dans une fenêtre à part self.text.insert(END,'test de code python')
On définit une fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 self.text.tag_config('vert',foreground='Green') self.text.tag_config('bleu',foreground='Blue')
On appelle cette fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 def colore(mot,couleur): start = 0.0 while 1: try: i = self.text.search(mot,start,END) j = self.text.index('%s+%dc'%(i,len(mot))) self.text.tag_add(couleur,i,j) start = j except: break
et le tour est joué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 colore('code','vert') colore('python','bleu')![]()
Partager