wxPython 在 TextCrl 中搜索单词
wxPython search word in TextCrl
我有一个用 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 中的文本转换为另一种数据结构以供搜索?
您正在尝试迭代 textCtrl,而不是其中的行。你可以这样做,
def SearchIt(self,e):
for i in range(self.rtb.GetNumberOfLines()):
line = self.rtb.GetLineText(i)
if self.text in line:
print(line)
我有一个用 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 中的文本转换为另一种数据结构以供搜索?
您正在尝试迭代 textCtrl,而不是其中的行。你可以这样做,
def SearchIt(self,e):
for i in range(self.rtb.GetNumberOfLines()):
line = self.rtb.GetLineText(i)
if self.text in line:
print(line)