keyboard problem solved

Thanks to Robin and everyone.
The following works. With no menubar.
(I still don't understand the EVT_MENU, seems like I
should be binding the event to a frame level command
event of some kind. But that's ok, this is clean.

  kfl = [
    (s.dof1clear ,'n',wx.WXK_F1,),
    (s.dof2search ,'n',wx.WXK_F2,),
          (s.dof3fixline,'n',wx.WXK_F3,),
          (s.dof4delline,'n',wx.WXK_F4,),
          (s.dof5push,'n',wx.WXK_F5,),
          (s.dof6pop,'n',wx.WXK_F6,),
              ..... Etc.....
          (s.pagedown,'n',wx.WXK_PAGEDOWN,),
          (s.pageup,'n',wx.WXK_PAGEUP,),
    ]
  acclist = []
  for k in kfl:
      id1 = wx.NewId()
      s.f.Bind(wx.EVT_MENU, k[0], id=id1)
      if k[1] == 'n': typ = wx.ACCEL_NORMAL
      elif k[1] == 'a': typ = wx.ACCEL_ALT
            acclist.append( (typ,k[2],id1) )
  atbl = wx.AcceleratorTable(acclist)
  s.f.SetAcceleratorTable(atbl) # s.f is the FRAME

Phillip Watts wrote:

Thanks to Robin and everyone.
The following works. With no menubar.
(I still don't understand the EVT_MENU, seems like I should be binding the event to a frame level command
event of some kind. But that's ok, this is clean.

Since menus have built-in support for accelerators then pressing an accelerator key triggers a menu event regardless of whether the accelerator was defined as part of a menu item or in an accelerator table.

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!