Bonjour,
j'utilise TKinte comme interface et j'ai un petit problème:
j'ai un fenetre avec un control Text
dans lequel j'ajoute des lignes de couleurs differentes
pour cela j'utilise tag_add
pour ajouter un ligne coloriee je fais:
#recupere la fin
fin_texte=self.Texte.index(Tkinter.END)
#recupere le numero de la deriere ligne
derniere_ligne = int(fin_texte.split('.')[0])-1
#insere le texte
self.Texte.insert(Tkinter.END, montexte)
# applique le tag correspondant à ma couleur sur la dernière ligne
self.Texte.tag_add(macouleur,"%d.0"%derniere_ligne,"%d.end"%derniere_ligne)
ca marche mais:
- des fois ca plante ( fin_texte vaut None )
- je trouve ca compliqué alors ce que je veut faire me parait assez simple
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre Maurette
Bonjour, j'utilise TKinte comme interface et j'ai un petit problème: j'ai un fenetre avec un control Text dans lequel j'ajoute des lignes de couleurs differentes pour cela j'utilise tag_add
pour ajouter un ligne coloriee je fais:
#recupere la fin fin_texte=self.Texte.index(Tkinter.END) #recupere le numero de la deriere ligne derniere_ligne = int(fin_texte.split('.')[0])-1 #insere le texte self.Texte.insert(Tkinter.END, montexte) # applique le tag correspondant à ma couleur sur la dernière ligne self.Texte.tag_add(macouleur,"%d.0"%derniere_ligne,"%d.end"%derniere_ligne)
ca marche mais: - des fois ca plante ( fin_texte vaut None ) - je trouve ca compliqué alors ce que je veut faire me parait assez simple
des idées?
Il me semble que je fais un peu plus simple, puisqu'on peut envoyer le tag dans le insert, mais je complique à un autre niveau (le choix du tag). Mais je n'ai peut-être pas compris votre question.
Lors de la création de mon Text (c'est un ScrolledText, mais peu importe):
Au final, j'ajoute ", tag=TAGS[condindex])" quand j'appelle ma fonction d'affichage qui en deux étapes aboutit à:
def printaline(self, line, **kwargs): self.logbox.insert(END, line + 'n', kwargs.get('tag', None))
Dans votre exemple, vous feriez:
# A la création self.Text.tag_config('nom_un_tag', macouleur) ... #A l'utilisation self.Texte.insert(Tkinter.END, montexte, tag='nom_un_tag')
ou alors: tag='nom_un_tag' #ou un autre, ou None.. self.Texte.insert(Tkinter.END, montexte, tag=tag)
-- Pierre Maurette
Bonjour,
j'utilise TKinte comme interface et j'ai un petit problème:
j'ai un fenetre avec un control Text
dans lequel j'ajoute des lignes de couleurs differentes
pour cela j'utilise tag_add
pour ajouter un ligne coloriee je fais:
#recupere la fin
fin_texte=self.Texte.index(Tkinter.END)
#recupere le numero de la deriere ligne
derniere_ligne = int(fin_texte.split('.')[0])-1
#insere le texte
self.Texte.insert(Tkinter.END, montexte)
# applique le tag correspondant à ma couleur sur la dernière ligne
self.Texte.tag_add(macouleur,"%d.0"%derniere_ligne,"%d.end"%derniere_ligne)
ca marche mais:
- des fois ca plante ( fin_texte vaut None )
- je trouve ca compliqué alors ce que je veut faire me parait assez simple
des idées?
Il me semble que je fais un peu plus simple, puisqu'on peut envoyer le
tag dans le insert, mais je complique à un autre niveau (le choix du
tag). Mais je n'ai peut-être pas compris votre question.
Lors de la création de mon Text (c'est un ScrolledText, mais peu
importe):
Bonjour, j'utilise TKinte comme interface et j'ai un petit problème: j'ai un fenetre avec un control Text dans lequel j'ajoute des lignes de couleurs differentes pour cela j'utilise tag_add
pour ajouter un ligne coloriee je fais:
#recupere la fin fin_texte=self.Texte.index(Tkinter.END) #recupere le numero de la deriere ligne derniere_ligne = int(fin_texte.split('.')[0])-1 #insere le texte self.Texte.insert(Tkinter.END, montexte) # applique le tag correspondant à ma couleur sur la dernière ligne self.Texte.tag_add(macouleur,"%d.0"%derniere_ligne,"%d.end"%derniere_ligne)
ca marche mais: - des fois ca plante ( fin_texte vaut None ) - je trouve ca compliqué alors ce que je veut faire me parait assez simple
des idées?
Il me semble que je fais un peu plus simple, puisqu'on peut envoyer le tag dans le insert, mais je complique à un autre niveau (le choix du tag). Mais je n'ai peut-être pas compris votre question.
Lors de la création de mon Text (c'est un ScrolledText, mais peu importe):
Au final, j'ajoute ", tag=TAGS[condindex])" quand j'appelle ma fonction d'affichage qui en deux étapes aboutit à:
def printaline(self, line, **kwargs): self.logbox.insert(END, line + 'n', kwargs.get('tag', None))
Dans votre exemple, vous feriez:
# A la création self.Text.tag_config('nom_un_tag', macouleur) ... #A l'utilisation self.Texte.insert(Tkinter.END, montexte, tag='nom_un_tag')
ou alors: tag='nom_un_tag' #ou un autre, ou None.. self.Texte.insert(Tkinter.END, montexte, tag=tag)
-- Pierre Maurette
Pierre Maurette
(supersedes )
Bonjour, j'utilise TKinte comme interface et j'ai un petit problème: j'ai un fenetre avec un control Text dans lequel j'ajoute des lignes de couleurs differentes pour cela j'utilise tag_add
pour ajouter un ligne coloriee je fais:
#recupere la fin fin_texte=self.Texte.index(Tkinter.END) #recupere le numero de la deriere ligne derniere_ligne = int(fin_texte.split('.')[0])-1 #insere le texte self.Texte.insert(Tkinter.END, montexte) # applique le tag correspondant à ma couleur sur la dernière ligne self.Texte.tag_add(macouleur,"%d.0"%derniere_ligne,"%d.end"%derniere_ligne)
ca marche mais: - des fois ca plante ( fin_texte vaut None ) - je trouve ca compliqué alors ce que je veut faire me parait assez simple
des idées?
Il me semble que je fais un peu plus simple, puisqu'on peut envoyer le tag dans le insert, mais je complique à un autre niveau (le choix du tag). Mais je n'ai peut-être pas compris votre question.
Lors de la création de mon Text (c'est un ScrolledText, mais peu importe):
Bonjour,
j'utilise TKinte comme interface et j'ai un petit problème:
j'ai un fenetre avec un control Text
dans lequel j'ajoute des lignes de couleurs differentes
pour cela j'utilise tag_add
pour ajouter un ligne coloriee je fais:
#recupere la fin
fin_texte=self.Texte.index(Tkinter.END)
#recupere le numero de la deriere ligne
derniere_ligne = int(fin_texte.split('.')[0])-1
#insere le texte
self.Texte.insert(Tkinter.END, montexte)
# applique le tag correspondant à ma couleur sur la dernière ligne
self.Texte.tag_add(macouleur,"%d.0"%derniere_ligne,"%d.end"%derniere_ligne)
ca marche mais:
- des fois ca plante ( fin_texte vaut None )
- je trouve ca compliqué alors ce que je veut faire me parait assez simple
des idées?
Il me semble que je fais un peu plus simple, puisqu'on peut envoyer le
tag dans le insert, mais je complique à un autre niveau (le choix du
tag). Mais je n'ai peut-être pas compris votre question.
Lors de la création de mon Text (c'est un ScrolledText, mais peu
importe):
Bonjour, j'utilise TKinte comme interface et j'ai un petit problème: j'ai un fenetre avec un control Text dans lequel j'ajoute des lignes de couleurs differentes pour cela j'utilise tag_add
pour ajouter un ligne coloriee je fais:
#recupere la fin fin_texte=self.Texte.index(Tkinter.END) #recupere le numero de la deriere ligne derniere_ligne = int(fin_texte.split('.')[0])-1 #insere le texte self.Texte.insert(Tkinter.END, montexte) # applique le tag correspondant à ma couleur sur la dernière ligne self.Texte.tag_add(macouleur,"%d.0"%derniere_ligne,"%d.end"%derniere_ligne)
ca marche mais: - des fois ca plante ( fin_texte vaut None ) - je trouve ca compliqué alors ce que je veut faire me parait assez simple
des idées?
Il me semble que je fais un peu plus simple, puisqu'on peut envoyer le tag dans le insert, mais je complique à un autre niveau (le choix du tag). Mais je n'ai peut-être pas compris votre question.
Lors de la création de mon Text (c'est un ScrolledText, mais peu importe):
Au final, j'ajoute ", tag=TAGS[condindex])" quand j'appelle ma fonction d'affichage qui en deux étapes aboutit à:
def printaline(self, line, **kwargs): self.logbox.insert(END, line + 'n', kwargs.get('tag', None))
Dans votre exemple, vous feriez:
# A la création self.Text.tag_config('nom_un_tag', macouleur) ... #A l'utilisation self.Texte.insert(Tkinter.END, montexte, 'nom_un_tag')
ou alors: tag='nom_un_tag' #ou un autre, ou None.. self.Texte.insert(Tkinter.END, montexte, tag)
(j'ai corrigé une erreur)
-- Pierre Maurette
Pierre Maurette
Bonjour,
[...]
des idées?
Je ne sais si vous ferez quelque chose de ma réponse précédente. En revanche, je vous remercie, je ne m'étais pas encore posé la question d'un tag sur une partie de ligne, et je vous ai volé votre code, que je ne trouve pas compliqué outre-mesure. Ça donne:
def printaline(self, line, **kwargs): LOG.debug(self.__class__.__name__) last_line = int(self.logbox.index(END).split('.')[0]) - 1 self.logbox.insert(END, line + 'n') if 'tag' in kwargs and kwargs['tag']: deb = line.find(kwargs['tagged']) fin = deb + len(kwargs['tagged']) self.logbox.tag_add(kwargs['tag'] , "%d.%d"%(last_line , deb) , "%d.%d"%(last_line , fin))
-- Pierre Maurette
Bonjour,
[...]
des idées?
Je ne sais si vous ferez quelque chose de ma réponse précédente. En
revanche, je vous remercie, je ne m'étais pas encore posé la question
d'un tag sur une partie de ligne, et je vous ai volé votre code, que je
ne trouve pas compliqué outre-mesure. Ça donne:
def printaline(self, line, **kwargs):
LOG.debug(self.__class__.__name__)
last_line = int(self.logbox.index(END).split('.')[0]) - 1
self.logbox.insert(END, line + 'n')
if 'tag' in kwargs and kwargs['tag']:
deb = line.find(kwargs['tagged'])
fin = deb + len(kwargs['tagged'])
self.logbox.tag_add(kwargs['tag']
, "%d.%d"%(last_line , deb)
, "%d.%d"%(last_line , fin))
Je ne sais si vous ferez quelque chose de ma réponse précédente. En revanche, je vous remercie, je ne m'étais pas encore posé la question d'un tag sur une partie de ligne, et je vous ai volé votre code, que je ne trouve pas compliqué outre-mesure. Ça donne:
def printaline(self, line, **kwargs): LOG.debug(self.__class__.__name__) last_line = int(self.logbox.index(END).split('.')[0]) - 1 self.logbox.insert(END, line + 'n') if 'tag' in kwargs and kwargs['tag']: deb = line.find(kwargs['tagged']) fin = deb + len(kwargs['tagged']) self.logbox.tag_add(kwargs['tag'] , "%d.%d"%(last_line , deb) , "%d.%d"%(last_line , fin))
-- Pierre Maurette
JBB
(supersedes )
Bonjour, j'utilise TKinte comme interface et j'ai un petit problème: j'ai un fenetre avec un control Text dans lequel j'ajoute des lignes de couleurs differentes pour cela j'utilise tag_add
pour ajouter un ligne coloriee je fais:
#recupere la fin fin_texte=self.Texte.index(Tkinter.END) #recupere le numero de la deriere ligne derniere_ligne = int(fin_texte.split('.')[0])-1 #insere le texte self.Texte.insert(Tkinter.END, montexte) # applique le tag correspondant à ma couleur sur la dernière ligne self.Texte.tag_add(macouleur,"%d.0"%derniere_ligne,"%d.end"%derniere_ligne)
ca marche mais: - des fois ca plante ( fin_texte vaut None ) - je trouve ca compliqué alors ce que je veut faire me parait assez simple
des idées?
Il me semble que je fais un peu plus simple, puisqu'on peut envoyer le tag dans le insert, mais je complique à un autre niveau (le choix du tag). Mais je n'ai peut-être pas compris votre question.
Lors de la création de mon Text (c'est un ScrolledText, mais peu importe):
Au final, j'ajoute ", tag=TAGS[condindex])" quand j'appelle ma fonction d'affichage qui en deux étapes aboutit à:
def printaline(self, line, **kwargs): self.logbox.insert(END, line + 'n', kwargs.get('tag', None))
Dans votre exemple, vous feriez:
# A la création self.Text.tag_config('nom_un_tag', macouleur)
.... #A l'utilisation self.Texte.insert(Tkinter.END, montexte, 'nom_un_tag') C'est exactement cela que je cherchais.
C'est encore plus simple que je ne me l'imaginais. Je comprends mieux maintenant la signification de: An additional tag can be given in ARGS. quand je fais help(Tkinter.text.insert)
ou alors: tag='nom_un_tag' #ou un autre, ou None.. self.Texte.insert(Tkinter.END, montexte, tag)
Bonjour,
j'utilise TKinte comme interface et j'ai un petit problème:
j'ai un fenetre avec un control Text
dans lequel j'ajoute des lignes de couleurs differentes
pour cela j'utilise tag_add
pour ajouter un ligne coloriee je fais:
#recupere la fin
fin_texte=self.Texte.index(Tkinter.END)
#recupere le numero de la deriere ligne
derniere_ligne = int(fin_texte.split('.')[0])-1
#insere le texte
self.Texte.insert(Tkinter.END, montexte)
# applique le tag correspondant à ma couleur sur la dernière ligne
self.Texte.tag_add(macouleur,"%d.0"%derniere_ligne,"%d.end"%derniere_ligne)
ca marche mais:
- des fois ca plante ( fin_texte vaut None )
- je trouve ca compliqué alors ce que je veut faire me parait assez
simple
des idées?
Il me semble que je fais un peu plus simple, puisqu'on peut envoyer le
tag dans le insert, mais je complique à un autre niveau (le choix du
tag). Mais je n'ai peut-être pas compris votre question.
Lors de la création de mon Text (c'est un ScrolledText, mais peu importe):
Au final, j'ajoute ", tag=TAGS[condindex])" quand j'appelle ma fonction
d'affichage qui en deux étapes aboutit à:
def printaline(self, line, **kwargs):
self.logbox.insert(END, line + 'n', kwargs.get('tag', None))
Dans votre exemple, vous feriez:
# A la création
self.Text.tag_config('nom_un_tag', macouleur)
....
#A l'utilisation
self.Texte.insert(Tkinter.END, montexte, 'nom_un_tag')
C'est exactement cela que je cherchais.
C'est encore plus simple que je ne me l'imaginais.
Je comprends mieux maintenant la signification de:
An additional tag can be given in ARGS.
quand je fais help(Tkinter.text.insert)
ou alors:
tag='nom_un_tag' #ou un autre, ou None..
self.Texte.insert(Tkinter.END, montexte, tag)
Bonjour, j'utilise TKinte comme interface et j'ai un petit problème: j'ai un fenetre avec un control Text dans lequel j'ajoute des lignes de couleurs differentes pour cela j'utilise tag_add
pour ajouter un ligne coloriee je fais:
#recupere la fin fin_texte=self.Texte.index(Tkinter.END) #recupere le numero de la deriere ligne derniere_ligne = int(fin_texte.split('.')[0])-1 #insere le texte self.Texte.insert(Tkinter.END, montexte) # applique le tag correspondant à ma couleur sur la dernière ligne self.Texte.tag_add(macouleur,"%d.0"%derniere_ligne,"%d.end"%derniere_ligne)
ca marche mais: - des fois ca plante ( fin_texte vaut None ) - je trouve ca compliqué alors ce que je veut faire me parait assez simple
des idées?
Il me semble que je fais un peu plus simple, puisqu'on peut envoyer le tag dans le insert, mais je complique à un autre niveau (le choix du tag). Mais je n'ai peut-être pas compris votre question.
Lors de la création de mon Text (c'est un ScrolledText, mais peu importe):
Au final, j'ajoute ", tag=TAGS[condindex])" quand j'appelle ma fonction d'affichage qui en deux étapes aboutit à:
def printaline(self, line, **kwargs): self.logbox.insert(END, line + 'n', kwargs.get('tag', None))
Dans votre exemple, vous feriez:
# A la création self.Text.tag_config('nom_un_tag', macouleur)
.... #A l'utilisation self.Texte.insert(Tkinter.END, montexte, 'nom_un_tag') C'est exactement cela que je cherchais.
C'est encore plus simple que je ne me l'imaginais. Je comprends mieux maintenant la signification de: An additional tag can be given in ARGS. quand je fais help(Tkinter.text.insert)
ou alors: tag='nom_un_tag' #ou un autre, ou None.. self.Texte.insert(Tkinter.END, montexte, tag)