可以,可以使用stc.StyledTextCtrl.SetIndicatorCurrent()
方法来设置当前指示器,然后使用stc.StyledTextCtrl.IndicatorFillRange()
方法来高亮指定范围内的文本。例如,以下代码将当前光标所在位置的文本高亮显示为红色:
import wx
import wx.stc as stc
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="StyledTextCtrl Example")
panel = wx.Panel(self)
self.stc = stc.StyledTextCtrl(panel)
self.stc.SetText("Hello, world!")
self.stc.SetIndicatorCurrent(0) # 设置当前指示器为0
self.stc.IndicatorFillRange(self.stc.GetCurrentPos(), 1) # 高亮当前光标所在位置的文本
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.stc, 1, wx.EXPAND)
panel.SetSizer(sizer)
self.Show()
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
app.MainLoop()
在上面的代码中,我们首先创建了一个stc.StyledTextCtrl
控件,并设置了一些文本。然后,我们使用stc.StyledTextCtrl.SetIndicatorCurrent()
方法将当前指示器设置为0,并使用stc.StyledTextCtrl.GetCurrentPos()
方法获取当前光标所在位置的索引。最后,我们使用stc.StyledTextCtrl.IndicatorFillRange()
方法将当前光标所在位置的文本高亮显示为红色。