Partage
  • Partager sur Facebook
  • Partager sur Twitter

Text Wiget tkinter / py 3

    4 septembre 2014 à 2:33:13

    Bonjour je cherche a coloré des mots dans un widget Text :
     
    if "def" in Text.get(1.0,tk.END) :
    
                 text.tag_add("start", position du mot a coloré )
                 text.tag_config("start",background="black",foreground="red")

     la fonction analyse le Text.get()

    puis réinsére le texte avec la couleur attribué au mots clés

    -
    Edité par raskaya 4 septembre 2014 à 2:33:35

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      4 septembre 2014 à 8:36:12

      Je sais pas si c'est la meilleure solution car ça impose

      • d'avoir un texte non formaté dans ton widget Text
      • d'enregistrer en mémoire tout le texte en formatant ce qui doit l'être et ne pas l'être
      • de vider le contenu du widget Text
      • de réécrire ce que tu as enregistré en mémoire dans le widget

      Ce qui est sûr, c'est que tu ne peux pas en partant du contenu de ton widget, le faire à la volée ! Il faudrait le faire en partant de l'endroit où tu récupères ce texte.

      Ton texte est récupéré de où ?

      Dans le cas où tu as copié collé un texte ou un code (à première vue) dans le contenant du widget, il faudra suivre les étapes indiquées ci-dessus.

      Pour cela, il faudrait que tu nous expliques le contexte sur lequel tu bosses.

      Je donne tout de même un exemple simple, applicable sur une seule ligne, sachant que par la suite il faudra adapter

      import tkinter as tk
      
      KEYWORD = ("def",)
      
      def parse():
          line = text.get(1.0, tk.END)
          text.delete(1.0, tk.END)
          words = line.split()
          for ind, word in enumerate(words):
              if word in KEYWORD:
                  text.insert(tk.END, word, "start")
              else:
                  text.insert(tk.END, word)
              text.insert(tk.END, " ")
      
      
      root = tk.Tk()
      
      text = tk.Text(root)
      text.tag_config("start", foreground="red", background="black")
      text.pack()
      
      button = tk.Button(root, text="color", command=parse)
      button.pack()
      
      root.mainloop()



      -
      Edité par Anonyme 4 septembre 2014 à 8:43:29

      • Partager sur Facebook
      • Partager sur Twitter
        8 septembre 2014 à 18:31:05

        .

        -
        Edité par raskaya 10 septembre 2014 à 18:12:41

        • Partager sur Facebook
        • Partager sur Twitter
          8 septembre 2014 à 19:03:43

          .

          -
          Edité par raskaya 10 septembre 2014 à 18:13:02

          • Partager sur Facebook
          • Partager sur Twitter

          Text Wiget tkinter / py 3

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown