I'm using set_from_file(), and it kind of works. The problem is that the image is updated only second time event handler that replots and invokes set_from_file() is triggered. I double checked replot occurs every time event is caught, when I open the image file manually it contains the updated plot.

I added queue_redraw() after set_from_file(), but it didn't help.

This is what I have there now:
  def apply_equations(self, widget, data):
        x_equation = data[0].get_text()
        y_equation = data[1].get_text()
        image = data[2]
        print "Equations: x=%s, y=%s" % (x_equation, y_equation)
        expression = x_equation + "," + y_equation
        plotter.set_expression(expression)
        plotter.plot()
        image.set_from_file("test.png")
        image.queue_draw()

self.equations_apply.connect("clicked", self.apply_equations, (self.x_expression, self.y_expression, self.image) )



On 01/28/2013 10:02 PM, Niklas Koep wrote:
If you're updating your gtk.Image contents via its set_from_file() method you don't need to request an update at all -- it happens automatically. Generally speaking, however, gtk.Widget implements a queue_draw() method which can be used to invalidate the entire visible area of a widget which in turn causes it to be redrawn. For your use this doesn't seem to be required though. Hope this helps.



2013/1/27 Daniil Baturin <dan...@baturin.org <mailto:dan...@baturin.org>>

    Hi,
    What is the proper way to reload gtk.Image contents?

    I want to make a simple educational gnuplot frontend that would
    allow playing with parametric curve coefficients by using spin
    buttons, expressions with substituted constants will be passed to
    gnuplot and generated png displayed in a gtk.Image. But I'm not
    sure how to request update of displayed image if the image has
    changed.


-- #!/usr/bin/env perl
    @a=split(//, "daniil @ baturin  .  org" );# Daniil Baturin
    @b=split(//,q/Px%!+o0Q6lh*7dp$.@8#%|y{/);while($i<24){$_.=
    chr((ord(@b[$i])-ord(@a[$i])+62)%94+32);$i++};print"$_\n"#

    _______________________________________________
    pygtk mailing list pygtk@daa.com.au <mailto:pygtk@daa.com.au>
    http://www.daa.com.au/mailman/listinfo/pygtk
    Read the PyGTK FAQ: http://faq.pygtk.org/




--
#!/usr/bin/env perl
@a=split(//, "daniil @ baturin  .  org" );# Daniil Baturin
@b=split(//,q/Px%!+o0Q6lh*7dp$.@8#%|y{/);while($i<24){$_.=
chr((ord(@b[$i])-ord(@a[$i])+62)%94+32);$i++};print"$_\n"#

_______________________________________________
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to