[pygtk] Reload gtk.Image contents

Daniil Baturin daniil at baturin.org
Mon Jan 28 23:43:18 WST 2013


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 <daniil at baturin.org <mailto:daniil at 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$. at 8#%|y{/);while($i<24){$_.=
>     chr((ord(@b[$i])-ord(@a[$i])+62)%94+32);$i++};print"$_\n"#
>
>     _______________________________________________
>     pygtk mailing list pygtk at daa.com.au <mailto:pygtk at 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$. at 8#%|y{/);while($i<24){$_.=
chr((ord(@b[$i])-ord(@a[$i])+62)%94+32);$i++};print"$_\n"#

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.daa.com.au/pipermail/pygtk/attachments/20130128/08abd896/attachment.html>


More information about the pygtk mailing list