2016-07-26 50 views
0

任何人都可以解釋如何將語法突出顯示添加到Tkinter Text部件?Tkinter:語法突出顯示的文本部件

每當程序找到一個匹配的單詞時,它會將該單詞按照我想要的方式着色。如:以粉色將單詞tkinter着色,並以藍色着色in。但是當我輸入Tkinter時,它以黃色Tk--ter,藍色爲in

我該如何解決這個問題?謝謝 !

+1

你可能想看看[Pygments來做](http://pygments.org/docs/quickstart/) 。這比滾動你自己要容易得多。如果你仍然想嘗試修正你的版本,你可能想描述你如何找到關鍵字來突出顯示(即你的正則表達式是什麼)。 – FamousJameous

回答

0

您可以使用tag來做到這一點。您可以將標籤配置爲具有特定的背景,字體,文字大小,顏色等。然後將這些標籤添加到您要配置的文本中。

所有這一切都在documentation

1

使用tags。我將實施那裏給出的概念。

例子:

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() 

演示:

enter image description here

+0

但有時我輸入「print」(其中包含單詞「int」),它突出顯示「int」,藍色,其餘顯示爲黃色 –