wxPython StyledTextCtrl Установить (частичный) цвет текста
Как установить цвет текста в StyledTextCtrl, но только какое-то слово? Я имею в виду, скажем, у меня есть
Люси голубая
и я хочу, чтобы только слово "синий" было окрашено в синий
3 ответа
Смотрите демонстрацию wxPython для StyledTextCtrl. Это показывает, как сделать это точно. Я думаю, что вы ищете что-то вроде этого:
ed.StartStyling(190, 0xff)
ed.SetStyling(20, 2)
Где 190 - 190-й символ, и вы задаете стиль для следующих 20 символов.
Используйте это, где text_area является StyledCtrlText
self.text_area.StyleSetSpec(stc.STC_P_DEFAULT,"fore:#FF0000")
Затем поместите текст, который вы хотите изменить цвет
Чтобы изменить стиль линии, вы должны получить позицию первого байта и конечного байта. затем вы можете определить стиль (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)