如何在 StyledTextCtrl 中设置文本颜色,但只有一些单词?我的意思是让我们说我有
露西是蓝色的
我只想将“蓝色”这个词染成蓝色
如何在 StyledTextCtrl 中设置文本颜色,但只有一些单词?我的意思是让我们说我有
露西是蓝色的
我只想将“蓝色”这个词染成蓝色
请参阅 StyledTextCtrl 的 wxPython 演示。它显示了如何做这件事。我认为你正在寻找的东西是这样的:
ed.StartStyling(190, 0xff)
ed.SetStyling(20, 2)
其中 190 是第 190 个字符,您可以为接下来的 20 个字符设置样式。
在 text_area 是 StyledCtrlText 的地方使用它
self.text_area.StyleSetSpec(stc.STC_P_DEFAULT,"fore:#FF0000")
接下来把你想改变颜色的文字
要更改线条的样式,您必须获取第一个字节和结束字节的位置。然后,您可以定义从第一个字节 (StartStyling) 开始并应用于整行 (SetStyling) 的样式 (StyleSetSpec)。您必须在结束字节处重新应用默认样式 (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)