[pygtk] Find string within TextBuffer

Steve McClure smcclure at racemi.com
Fri Mar 13 21:23:42 WST 2009


On Mar 13, 2009, at 6:52 AM, Lupine wrote:

> Hello all,
>
> I've read over:
> http://www.pygtk.org/pygtk2tutorial/sec-TextBuffers.html
> http://www.pygtk.org/pygtk2tutorial/sec-TextIters.html
> ...but I'm not finding what I'm looking for, which is probably really
> simple for someone out there.  If you can point me to another tutorial
> were this is covered, or example code..either would be much  
> appreciated.
>
> I have a simple Python/PyGTK/Glade application, which has a  
> gtk.TextView
> that contains some text from the gtk.TextBuffer.  Upon the click of  
> the
> "find" button, how can I scroll through each line of the buffer  
> looking
> for the entered string.  This is what I got so far:
>
> def on_find_dialog_ok_button_clicked(self, action):
> """This will highlight each found entry"""
> findentry = self.widgets.get_widget('find_entry').get_text()
> txtbuffer = self.widgets.get_widget('pref_hosts_txtview').get_buffer()
> startiter = txtbuffer.get_start_iter()
> enditer = txtbuffer.get_end_iter()
> bufferlines = txtbuffer.get_text(startiter, enditer)

I think the iterator points to characters in a string, not strings in  
a list.  If so you would just need something like:

bufferstr = txtbuffer.get_text(startiter, enditer)
if findentry in bufferstr:
    print 'found entry:'

> for bufferline in bufferlines:
>   print "looking at " + bufferline
>     if (re.search(findentry, bufferline)):
>       print "found entry: " + bufferline
> print "all done looking"
>
> The result, is that it is printing each character (one char at a time)
> on each separate line, which explains why my search is failing.  So  
> what
> is the proper way to look through each line for str?
>
> Thanks,
> -Lup
>
> _______________________________________________
> pygtk mailing list   pygtk at daa.com.au
> http://www.daa.com.au/mailman/listinfo/pygtk
> Read the PyGTK FAQ: http://faq.pygtk.org/
>
>
>

--
Steve McClure
smcclure at racemi.com



More information about the pygtk mailing list