<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7652.24">
<TITLE>problem to update gnuplot display using a Scale widget</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<P><FONT SIZE=2>Hello!<BR>
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).<BR>
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.<BR>
<BR>
import os,Tkinter,string,time<BR>
class MyApp:<BR>
def __init__(self, parent):<BR>
self.f=os.popen("gnuplot -","w")<BR>
print >>self.f,"plot \"data.dat\" with lines"<BR>
print >>self.f,"reread"<BR>
self.myParent=parent<BR>
self.myContainer1=Frame(parent)<BR>
self.myContainer1.pack()<BR>
self.v=DoubleVar()<BR>
self.slider1=Scale(self.myParent,from_=0,to=1,resolution=0.001,command=self.printer)#variable=self.v,command=self.printer)<BR>
self.slider1.pack()<BR>
<BR>
def printer(self,newval):<BR>
os.system("/bin/generate_data_file "+str(newval))<BR>
time.sleep(0.09)<BR>
print >>self.f,"replot\n"<BR>
return newval<BR>
root=Tk()<BR>
myapp=MyApp(root)<BR>
root.mainloop()<BR>
<BR>
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.<BR>
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).<BR>
<BR>
Thanks a lot !<BR>
<BR>
"It does not pay to leave a live<BR>
dragon out of your calculations"<BR>
- Tolkien<BR>
<BR>
</FONT>
</P>
</BODY>
</HTML>