我一直在嘗試將tkinter文本小部件的語法突出顯示。但是,使用this post上的代碼,我無法使其工作。沒有錯誤,但文本沒有突出顯示,每行後面都有一行跳過。如果有更好的方法將語法突出顯示與tkinter文本小部件合併,我很樂意聽到它。這是我能找到的最小碼重複的問題:python tkinter文本小部件中的pygments語法突出顯示
import Tkinter
import ScrolledText
from pygments import lex
from pygments.lexers import PythonLexer
root = Tkinter.Tk(className=" How do I put an end to this behavior?")
textPad = ScrolledText.ScrolledText(root, width=100, height=80)
textPad.tag_configure("Token.Comment", foreground="#b21111")
code = textPad.get("1.0", "end-1c")
# Parse the code and insert into the widget
def syn(event=None):
for token, content in lex(code, PythonLexer()):
textPad.insert("end", content, str(token))
textPad.pack()
root.bind("<Key>", syn)
root.mainloop()
到目前爲止,我還沒有找到一個解決這個問題的(不然我也不會在這裏發佈)。任何有關語法突出tkinter文本小部件的幫助將不勝感激。
注:這是Python 2.7版與Windows 7
謝謝您的回答。我有一個問題。我如何使這個應用語法突出顯示所有Python代碼(我將如何擴展這個超越註釋?)?我很抱歉,但我無法弄清楚如何在這種情況下應用pygments文檔。 –
您可以在循環中添加一個打印語句來打印出令牌名稱,然後您只需要像爲「Token.Comment」一樣配置每個名稱的顏色。 –
根據細分[文檔](http://pygments.org/docs/styles/),有些預製樣式與分節符一起提供。不過,我不知道我怎麼能使用這些用'tkinter',這樣我就不必創建一個'tag'爲每'token'。我將如何做到這一點? –