wxPython Plot always comes to focus on redraw

Steve Holden steve at holdenweb.com
Thu Feb 21 13:36:27 CET 2008

Jacob Davis wrote:
> Hi.
> 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  
> pls.
> Thanks for any help!
> Jake

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 mailing list