Brilliant ! Thanks that did it beautifully, my virtual kidney (renal function simulator) is well on its way now !
-----Original Message----- From: Guilherme Polo [mailto:[EMAIL PROTECTED] Sent: Thu 9/18/2008 12:49 PM To: Philippe Garteiser, PhD; tkinter-discuss@python.org Subject: Re: [Tkinter-discuss] problem to update gnuplot display using a Scale widget On Tue, Sep 16, 2008 at 7:19 PM, Philippe Garteiser, PhD <[EMAIL PROTECTED]> 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@python.org > http://mail.python.org/mailman/listinfo/tkinter-discuss > > -- -- Guilherme H. Polo Goncalves
_______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss