[Tkinter-discuss] problem to update gnuplot display using a Scale widget

Philippe Garteiser, PhD Philippe-Garteiser at omrf.org
Wed Sep 17 00:19:40 CEST 2008

I am using a Tkinter GUI to operate a C binary whose input is a float number gotten from a Scale widget, and whose output is a datafile. I would like to get gnuplot to replot the datafile each time it is overwritten (in essence have the plot refreshed by the Scale slider).
To do that, I pass the function "printer(self,newval)", to the Scale's command. In the printer function, I use os.system to execute the binary, and I operate gnuplot as a special file opened by os.popen, to which I write with the chevrons print statement.

 import os,Tkinter,string,time
 class MyApp:
     def __init__(self, parent):
         self.f=os.popen("gnuplot -","w")
         print >>self.f,"plot \"data.dat\" with lines"
         print >>self.f,"reread"

     def printer(self,newval):
         os.system("/bin/generate_data_file "+str(newval))
 print >>self.f,"replot\n"
         return newval

 Unfortunately I don't obtain the expected result. The Tk window is there with functioning slider, the generate_data_file is executed and given the proper input value from the slider, but gnuplot is still a problem. The gnuplot window only comes up when I close the Tkinter window, and shuts down rapidly.
Do you have any ideas as to what I need to fix ? Also, it would be great not to have to use the pyGnuplot.py package, as the program will have to run on minimally installed boxes (i.e. standard python, no extra modules allowed).

Thanks a lot !

"It does not pay to leave a live
dragon out of your calculations"
 - Tolkien 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tkinter-discuss/attachments/20080916/738e0059/attachment.htm>

More information about the Tkinter-discuss mailing list