2012-05-10 77 views

回答

1

見wxPython的演示爲StyledTextCtrl。它顯示瞭如何做到這一點確切的事情。我認爲你正在尋找的東西是這樣的:

ed.StartStyling(190, 0xff) 
ed.SetStyling(20, 2) 

其中190是第190個字符,你爲後20個字符設置樣式。

+0

你忘了(在你的榜樣號2)設置樣式的文本第一:StyleSetSpec(2,「fore:#0000ff」) – Tupteq

+0

那麼,這也是演示示例代碼。我只是沒有注意到/包括它。 –

+0

ed.StartStyling(190,0xff)中的0xff是什麼? –

0

要改變一行的樣式,你必須得到第一個字節和結束字節的位置。那麼你可以定義一個你在第一個字節(StartStyling)開始的樣式(StyleSetSpec),並且你在整行上應用(SetStyling)。您必須在結尾字節處重新應用默認樣式(0)。這裏是我的代碼:

# Move to line 
self.editname.GotoLine(line-1) 
# Get position 
pos = self.editname.GetCurrentPos() 
# Define style 4 
self.editname.StyleSetSpec(4, "back:#ff0000") 
# Starts style at position pos 
self.editname.StartStyling(pos, 0xffff) 
# Until posend position, apply style 4 
self.editname.SetStyling(posend-pos, 4) 
# Restore style 0 after the ending byte of the line 
self.editname.SetStyling(posend, 0) 
0

使用這其中text_area是StyledCtrlText

self.text_area.StyleSetSpec(stc.STC_P_DEFAULT,"fore:#FF0000") 

接下來把你想改變顏色