IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Plusieurs couleurs dans un même label ?


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Points : 15
    Points
    15
    Par défaut Plusieurs couleurs dans un même label ?
    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

  2. #2
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 27
    Points
    27
    Par défaut label couleur
    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()

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    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

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 27
    Points
    27
    Par défaut 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

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Pour info, c'est tout à fait possible avec un le composant Text et sa fonction tag.

    On écrit dans le champ text :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.text.insert(END,'test de code python')
    On créé 2 tag :

    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 définit une 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
    On appelle cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    colore('code','vert')
    colore('python','bleu')
    et le tour est joué

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. TeeChart - plusieurs couleurs dans la même barre
    Par DarkLago dans le forum Delphi
    Réponses: 9
    Dernier message: 18/04/2007, 16h30
  2. [VBS] Lancer plusieurs script dans le même interpréteur
    Par intrud3r dans le forum VBScript
    Réponses: 4
    Dernier message: 12/07/2006, 16h26
  3. [Requête] plusieurs champs dans une même table ayants la même source
    Par Christophe93250 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/04/2006, 17h18
  4. TForm pour plusieurs fenêtre dans une même fonction ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 5
    Dernier message: 15/11/2005, 13h38
  5. [Applet]Utiliser plusieurs Applet dans une même classe
    Par BRAUKRIS dans le forum Applets
    Réponses: 5
    Dernier message: 11/06/2004, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo