2016-07-26 18 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"が青色になり、残りは黄色で強調表示されます –

関連する問題