我正在使用Python編寫簡單的GUI代碼編輯器,並且我希望光標所在的文本行始終處於高亮狀態。如何突出顯示Text小部件的當前行?
現在,我的TextEditor
類的樣子:
class TextEditor:
def __init__(self, container):
self.scrollbar = Scrollbar(container)
self.scrollbar.pack(side=RIGHT, fill=Y)
self.textbox = Text(container, height=40, undo=True, width=80,
font=tkFont.Font(family="Consolas", size=12))
self.textbox.pack(side=LEFT)
self.textbox.config(yscrollcommand=self.scrollbar.set)
self.scrollbar.config(command=self.textbox.yview)
我怎樣才能做到這一點?
爲什麼要投票?我只是檢查了一下,我可以綁定到「文本」中的按鍵和鼠標點擊事件。除非我錯過了某些東西,否則在我看來,這意味着您可以綁定到任何可能移動光標的用戶事件。至於編程原因,您的光標可能會移動 - 您的代碼負責執行此操作,所以無論何時發生,只需在之後調用_highlight_current_line即可。 – ArtOfWarfare 2015-05-10 14:53:56
@ArtOfWarfare:爲什麼要投票?主要是因爲它是一個簡單的解決方案。是的,你可以綁定到每一個移動光標的位置,但是你知道所有這些事件是什麼嗎?你也許可以弄明白,但是當你用程序插入文本時,你還需要記住調用你的代碼。投票簡單,有效,幾乎萬無一失。 – 2015-05-10 18:21:28