Gary Pajer
2004-05-23 03:01:49 UTC
I've been trying to figure out how to do an dynamic update in TkAgg
withoutsuccess. Anyone have any pointers?
I'm trying to recreate the functionality of the Pmw.Blt stripchart.
-gary
I guess I should be a little more specific. The part I'm having troubleI'm trying to recreate the functionality of the Pmw.Blt stripchart.
-gary
with is the dynamic update. As a step along the way, I've got a gui with a
button that just replots some data slightly altered from the original.
If I use FigureCanvasTkAgg.show (schematically speaking) it will replot, but
just once. That is, my button's callback routine contains a loop that tries
to change the data (via set_ydata followed by ....show()) several times in a
row. If I click the button, the data updates, but only once. I click it
again, it the data updates once. I remove the loop, the data updates once.
This strikes me as odd. How should the graphics window know or care if I'm
in a python loop or not?
I'm thinking that a well-placed call to
canvas.get_tk_widget.update_idletasks() should do the job, but that hasn't
worked for me either.
Aside: having played with anim.py I'm concerned about speed. It seems that
the speed of anim.py is limited by my system, not by the call to
gtk.timeout_add(). I might be back asking about a solution that runs faster
... perhaps a lower level solution. (Pmw.Blt works fast enough.) Hmm... I
just tried anim.py again, and it won't run. I've just upgraded to 0.54.
Odd ... it opens a Tk window. I'll try that again later after I reboot.
I'm on WinXP.
Comment: I don't have a handle at all on how the graphics system is
organized. For example, what is a figure manager? When do I use it? I
don't seem to need it, but there it is, and some of the examples use it.
Looking through the docstrings I find myself going in circles. Maybe I'm
digging too deeply for my own good. Maybe you developer types might add to
your to-do list a description of the stucture of the graphics system.
thanks again,
gary
btw, for every task other than animation, matplotlib is the bomb. great
job.