[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
Hello!
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"
self.myParent=parent
self.myContainer1=Frame(parent)
self.myContainer1.pack()
self.v=DoubleVar()
self.slider1=Scale(self.myParent,from_=0,to=1,resolution=0.001,command=self.printer)#variable=self.v,command=self.printer)
self.slider1.pack()
def printer(self,newval):
os.system("/bin/generate_data_file "+str(newval))
time.sleep(0.09)
print >>self.f,"replot\n"
return newval
root=Tk()
myapp=MyApp(root)
root.mainloop()
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