I'm embedding a FigureCanvasWxAgg into a wx.Panel and binding key events to
it:

class MyPanel(wx.Panel)

    def __init__(self, parent, file, id=-1):
        wx.Panel.__init__(self, parent,
                style=wx.WANTS_CHARS | wx.NO_FULL_REPAINT_ON_RESIZE)

        #Set up the canvas
        self.figure = Figure((9,8),75)
        self.canvas = FigureCanvasWxAgg(self, -1, self.figure)
        self.subplot = self.figure.add_subplot(111)

        #Set up the toolbar
        self.toolbar = NavigationToolbar2Wx(self.canvas)
        tw, th = self.toolbar.GetSizeTuple()
        fw, fh = self.canvas.GetSizeTuple()
        self.toolbar.SetSize(wx.Size(fw, th))

        #Set up figure manager
        self.figmgr = FigureManager(self.canvas, 1, self)

        self.canvas.Bind(wx.EVT_KEY_UP, self.__keyup)
        self.canvas.Bind(wx.EVT_KEY_DOWN, self.__keydown)

        def self.__keyup(self, evt):
                print 'key up'

        def self.__keydown(self, evt):
                print 'key down'

The program successfully detects keydown events for just about every key
with three major exceptions: wx.WXK_RETURN, wx.WXK_RIGHT, wx.WXK_LEFT.
There may be other keys out there, but those three keys are the ones I need
to process events for.  

I've tried subclassing FigureCanvasWxAgg and defining key_press_event (which
doesn't seem to work) and overriding _onKeyDown (which still does not
capture the keys I need).  Something weird seems to be happening to these
keys, and was wondering if anyone could help me?

I am able to detect the EVT_KEY_UP for these three keys.  Just not the key
down ones.  

Thanks!
Orest


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to