2016-07-26 12 views
0

Kann jemand erklären, wie Syntax-Highlighting zu einem Tkinter Text Widget hinzugefügt werden?Tkinter: Syntax-Hervorhebung für Text-Widget

Jedes Mal, wenn das Programm ein übereinstimmendes Wort findet, würde es dieses Wort wie gewünscht färben. Wie: Farbe das wort tkinter in rosa und in in blau. Aber wenn ich Tkinter eintippe, färbe es Tk--ter in Gelb und in in Blau.

Wie kann ich das beheben? Vielen Dank !

+1

Sie können auf [Pygments] aussehen wollen (http://pygments.org/docs/quickstart/) . Es wäre viel einfacher als das eigene zu rollen. Wenn Sie immer noch versuchen möchten, Ihre Version zu reparieren, möchten Sie vielleicht beschreiben, wie Sie Schlüsselwörter zum Hervorheben finden (d. H. Was ist Ihr regulärer Ausdruck). – FamousJameous

Antwort

0

Sie können dazu einen tag verwenden. Sie können das Tag so konfigurieren, dass es bestimmte Hintergründe, Schriftarten, Textgrößen, Farben usw. hat. Fügen Sie dann diese Tags zu dem Text hinzu, den Sie konfigurieren möchten.

All dies ist in der documentation.

1

Verwenden Sie tags. Ich werde die dort gegebenen Begriffe umsetzen.

Beispiel:

import tkinter as tk 

root = tk.Tk() 
root.title("Begueradj") 
text = tk.Text(root) 
# Insert some text 
text.insert(tk.INSERT, "Security ") 
text.insert(tk.END, " Pentesting ") 
text.insert(tk.END, "Hacking ") 
text.insert(tk.END, "Coding") 
text.pack() 
# Create some tags 
text.tag_add("one", "1.0", "1.8") 
text.tag_add("two", "1.10", "1.20") 
text.tag_add("three", "1.21", "1.28") 
text.tag_add("four", "1.29", "1.36") 
#Configure the tags 
text.tag_config("one", background="yellow", foreground="blue") 
text.tag_config("two", background="black", foreground="green") 
text.tag_config("three", background="blue", foreground="yellow") 
text.tag_config("four", background="red", foreground="black") 
#Start the program 
root.mainloop() 

Demo:

enter image description here

+0

Aber manchmal tippe ich "print" (was das Wort "int" enthält), markiert "int" in blau und den Rest in gelb –