wxPython Plot always comes to focus on redraw
steve at holdenweb.com
Thu Feb 21 13:36:27 CET 2008
Jacob Davis wrote:
> I am using wxPython, and I have a frame that has a notebook in it.
> there are 3 pages in the notebook, 2 of which are Panels and 1 of
> which is a PlotCanvas. The data for the plot changes when I press a
> button that is in the frame, but not in the notebook (as designed).
> the button also makes the plot draw again, since the data has changed.
> The problem is that whenever I press my button, the focus of the
> notebook "view area" (as opposed to the tabs) changes focus to the
> plot. if I have multiple plots, the focus goes to that plot which was
> drawn last in the code. however, if I click anywhere on the panel, the
> page of the notebook that is supposed to be in focus is now shown in
> the "view area" of the notebook.
> will try to make a sample .py if anybody needs a visual, let me know
> Thanks for any help!
All wxWindow objects have a SetFocus() method. I am unsure why the
system should be changing the focus (it's almost certainly something you
are asking it to do without realizing), but the easiest way to proceed
if you can't stop the focus from changing (i.e. remove the problem) is
to call SetFocus() on the widget that you want to have the focus after
you've finished (i.e. cure the symptom).
Or perhaps it's just that I haven't understood the problem correctly.
You probably didn't post the code because it's large (which is good).
The correct action is to pare the program down to the smallest one you
can make that demonstrates the problem, then post that. often during
this process it becomes clear what the problem is!
It may be that your widget relationships aren't as clean as they might
be: did you produce your layout with an automated tool like wxDesigner
or BoaConstrictor, or did you hack it together by hand?
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/
More information about the Python-list