我有一个用wxPython编写的简单迷你记事本程序。 文本是用TextCtrl编写的:
self.rtb = wx.TextCtrl(self, ID_RTB, size=wx.Size(400,200),
style=wx.TE_MULTILINE | wx.TE_RICH2)
我想实现一个搜索功能,用户在其中提供一个单词,并在TextCtrl中突出显示它。
我的方法是:
def SearchIt(self,e):
for line in self.rtb:
if self.text in line:
print line #will be changed to highlight when it will work
但是我收到错误:
TypeError: 'TextCtrl' object is not iterable
任何建议如何解决?现在更改TextCtrl太复杂了。有没有其他方法可以在TextCtrl中搜索单词,或者可能是一种将TextCtrl中的文本转换为另一种数据结构只是为了搜索?
答案 0 :(得分:1)
您正在尝试交换textCtrl,而不是其中的行。你可以这样做,
def SearchIt(self,e):
for i in range(self.rtb.GetNumberOfLines()):
line = self.rtb.GetLineText(i)
if self.text in line:
print(line)