2011-05-11 63 views
2

我試圖顏色Tkinter的文本組件標籤工作在Tkinter的文本插件的文本與標記的幫助以這樣的方式與使用python

text = self.text_field.get(1.0, 'end') #text_field is a text widget 
s = re.findall("\d+", text) 
for i in s: 
    self.text_field.tag_add(i, '1.0', 'end') 
    self.text_field.tag_configure(i, background='yellow', 
            font='helvetica 14 bold', relief='raised') 

的想法是,所有的標籤被動態創建,因爲我從文本小部件獲取數字,並且它們可以有任意長度。此代碼爲小部件中的所有文本着色,但我只需要將數字着色。

有什麼建議嗎?

回答

3

當你

tag_add(i, '1.0', 'end') 

你使覆蓋整個文本框的標籤。您只需使用正則表達式匹配的.start().stop()方法在數字上添加文本即可。

有做語法這裏突出的例子:
http://forums.devshed.com/python-programming-11/syntax-highlighting-172406.html

+0

您是否可以更新鏈接以直接指向要引用的示例? – martineau 2014-12-23 19:05:02

+0

@martineau:對不起,它看起來像該網站的網址結構已更改,我不知道如何回到該帖子。 – 2014-12-24 22:34:33

+0

我想我找到了。由於代碼很短(和開源),我建議你將它添加到你的答案以及鏈接到它。 – martineau 2015-02-13 16:32:23