[Tkinter-discuss] problem to update gnuplot display using a Scale widget
Guilherme Polo
ggpolo at gmail.com
Thu Sep 18 19:49:08 CEST 2008
On Tue, Sep 16, 2008 at 7:19 PM, Philippe Garteiser, PhD
<Philippe-Garteiser at omrf.org> wrote:
> 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 ?
You are forgetting to flush f.
Do a self.f.flush() after that "reread" and "replot".
> 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
>
>
> _______________________________________________
> Tkinter-discuss mailing list
> Tkinter-discuss at python.org
> http://mail.python.org/mailman/listinfo/tkinter-discuss
>
>
--
-- Guilherme H. Polo Goncalves
More information about the Tkinter-discuss
mailing list