George Schneeloch wrote:
Hey everybody. Basically my issue is that I have a TextView created in glade, but the text in the TextBuffer of that textview doesn't change when I enter something in the textbox. If it starts off blank, all get_text(* textbuffer.get_bounds()) calls get an empty string, even if I have typed something there. If I enter a default value in Glade, or if I call textbuffer.set_text() beforehand, the get_text call returns that text no matter what changes I make to the actual textbox. Any ideas what I'm doing wrong?
-George Schneeloch

Here's my code:
import pygtk
pygtk.require('2.0')
import gtk
import gtk.glade
import callbacks
#Callbacks = callbacks.Callbacks

class Callbacks:
    def on_window_delete_event(widget, event, data=None):
        return False
    def on_button_highlight_clicked(widget, data=None):
        glade_file = "main_window.glade"
        glade_xml_tree = gtk.glade.XML(glade_file, "window")
You are creating a new widget tree each time you call gtk.glade.XML in your button "clicked" callback. A possible solution is to set "textview_code" as the Object in your button signal properties - this has the effect of calling on_button_highlight_clicked with the TextView as the first argument allowing your signal handler to be coded like:

   def on_button_highlight_clicked(textview, data=None):
       textbuffer = textview.get_buffer()
       text = textbuffer.get_text(*textbuffer.get_bounds())
       print text
       textbuffer.set_text ("next run")

John

_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to