2012-05-10 2 views

ответ

1

Смотрите демо WxPython для StyledTextCtrl. Это показывает, как это сделать. Я думаю, что бит вы ищете что-то вроде этого:

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

Где 190 это сто девяностого характер и установить стиль для следующих 20 символов.

+0

Вы забыли о настройке стиля (номер 2 в вашем примере) first: StyleSetSpec (2, «fore: # 0000ff») – Tupteq

+0

Ну, это тоже код демонстрационного примера. Я просто не заметил/включил его. –

+0

Что такое 0xff в ed.StartStyling (190, 0xff)? –

0

Чтобы изменить стиль линии, вы должны получить позицию первого байта и конечного байта. то вы можете определить стиль (StyleSetSpec), который вы начинаете с первого байта (StartStyling), и который вы применяете на всей строке (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") 

следующим положил текст, который вы хотите изменить цвет