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 :

Surligner une partie d'un texte


Sujet :

Tkinter Python

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut Surligner une partie d'un texte
    Bonjour, pourriez-vous me dire svp comment faire pour surligner une partie d'un texte. Ici je voudrais surligner messages1 et non messages2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
          messages1 = ("Définition : ")
          messages2 = ("BlablablaBlablablaBlablablaBlablablaBlablablaBlablablaBlablablaBlablablaBlablabla")
     
          helv37 = tkFont.Font(family='@Malgun Gothic Semilight', size=14, weight='bold', underline=1)
          text = Text(fInfos, bg="midnight blue", fg="white", font=helv37)
          text.insert(INSERT, messages1)
          text.configure(wrap='word')#, underline=True)
          text.insert(INSERT, messages2)
          text.pack()
    Cordialement,
    Arsène

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 329
    Points : 36 848
    Points
    36 848
    Par défaut
    Salut,

    Il y a ce qu'il faut dans la documentation du widget Text. Ca se fait via des tags associés au texte configurés avec l'attribut underline... Et pour les exemples, un peu de recherche sur Internet.

    - W

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    Merci. J'ai fait ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          text.tag_add("debut", "1.0","1.19")
          text.tag_config("debut", underline=True)
    Ça surligne les 19 premiers caractères.


    Si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text.insert(INSERT, (messages3, messages1))
    Ça mets des accolades à messages3 et messages1.

    Il me faudrait empêcher l'apparition des accolades. Puis faire quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x= len(messages1)
    text.tag_add("debut", "1.0","1."+int(x))

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    Pour pas qu'y ait d'accolades, il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          text.insert(INSERT, messages1)
          text.insert(INSERT, messages3)
    #au lieu de text.insert(INSERT, (messages1, messages3))
    Pour surligner messages1, il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          x=len(messages1)
     
          text.tag_add("debut", "1.0","1."+str(x))
          text.tag_config("debut", underline=True)

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 329
    Points : 36 848
    Points
    36 848
    Par défaut
    Salut,

    Il faut apprendre à faire fonctionner text.insert!
    Je crée le tag text.tag_config("debut", underline=True) et j’insère du texte associé à ce tag: text.insert('end, 'toto', 'debut', titi, '', 'tutu', 'debut').

    - W

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    Et comment dois-je m'y prendre avec ces 2 textes (je veux surligner le premier)? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          messages1 = ("Définition : ")
          messages2 = ("BlablablaBlablablaBlablablaBlablablaBlablablaBlablablaBlablablaBlablablaBlablabla")

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 329
    Points : 36 848
    Points
    36 848
    Par défaut
    Citation Envoyé par Arsene12 Voir le message
    Et comment dois-je m'y prendre avec ces 2 textes (je veux surligner le premier)? :
    C'est bien la peine que je vous poste du code

    - W

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    C'est bien la peine que je vous poste du code
    - W
    Je l'ai recopié tel quel et j'ai invalid syntax qui pointe sur toto.

    J'y arrive pour 1 seul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    text.tag_config("big", underline=True)      
    text.insert(END, messages1, 'big')

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 329
    Points : 36 848
    Points
    36 848
    Par défaut
    Citation Envoyé par Arsene12 Voir le message
    Je l'ai recopié tel quel et j'ai invalid syntax qui pointe sur toto.
    chez moi cela fonctionne très bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> import tkinter as tk
    >>> text = tk.Text()
    >>> text.pack()
    >>> text.tag_config("debut", underline=True)
    >>> text.insert('end', 'toto', 'debut', 'titi', '', 'tutu', 'debut')
    >>> text.update()
    - W

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    J'y suis arrivé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          text.tag_config("big", underline=True)
          text.tag_config("fat", font=('Arial', 12, 'bold', 'italic')) 
          text.insert('end', messages1, 'big')
          text.insert('end', messages3,'fat')
    Ce code fonctionne. Il me faut ensuite assembler les 2 text.insert()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          text.tag_config("big", underline=True)
          text.tag_config("fat", font=('Arial', 12, 'bold', 'italic')) 
          text.insert('end', messages1, 'big', messages3, 'fat')
    J'aurai pu mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    text.insert(INSERT, messages1, 'big', messages3, 'fat')
    Je suppose qu'on peut mettre INSERT quand il n'y a pas de texte déjà inséré, sinon on rajoute à la fin ou au début.

    Merci en tout cas de m'avoir aidé à corriger le tir. C'est plus simple qu'en utilisant la fonction len.

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 329
    Points : 36 848
    Points
    36 848
    Par défaut
    Citation Envoyé par Arsene12 Voir le message
    Je suppose qu'on peut mettre INSERT quand il n'y a pas de texte déjà inséré, sinon on rajoute à la fin ou au début.
    Pourquoi vous supposez?
    Vous avez tout un chapitre sur les marques qui explique la différence entre "insert" et "current" (qui sont des marques) alors que "end" n'est qu'un index (i.e. encore autre chose).

    - W

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

Discussions similaires

  1. [WD-2013] Surligner une partie d'un texte word
    Par bboy-eazy dans le forum VBA Word
    Réponses: 8
    Dernier message: 20/11/2017, 14h17
  2. Surligner une partie d'une zone de texte
    Par raymonizuka dans le forum VBA Access
    Réponses: 6
    Dernier message: 11/06/2008, 13h28
  3. [RegEx] récupérer une partie d'un texte en précisant les bornes
    Par italiasky dans le forum Langage
    Réponses: 7
    Dernier message: 18/02/2007, 20h50
  4. [C#] Comment copier une partie d'un texte ?
    Par zidenne dans le forum C#
    Réponses: 1
    Dernier message: 18/09/2006, 10h37
  5. comment récuperer une partie selectionné de texte?
    Par Death83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/09/2005, 12h22

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