2015-06-09 77 views
0

我有一个用wxPython编写的简单的迷你记事本程序。 文字是写在TextCtrl:wxPython在TextCrl中搜索的单词

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

您试图整合textCtrl,而不是其中的行。你可以这样做,

def SearchIt(self,e): 
    for i in range(self.rtb.GetNumberOfLines()): 
     line = self.rtb.GetLineText(i) 
     if self.text in line: 
      print(line)