wxPython在TextCrl中搜索单词

时间:2015-06-09 11:52:52

标签: python wxpython

我有一个用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中的文本转换为另一种数据结构只是为了搜索?

1 个答案:

答案 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)