LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 706|回复: 1

有用 Python 和 wxPython 的兄弟么?学习中,求助

[复制链接]
发表于 2004-4-14 17:41:50 | 显示全部楼层 |阅读模式
wxPython中,窗口的关系如下 :

wx.Frame ---- wx.Panel --- wx.StaticText

Sizer是 GridBagSizer,

想让 Frame 处理全部键盘事件,但 Frame.AcceptsFocus 是 False。
用 style = wx.WANTS_CHARS ,

结果仍然是无法得到事件

代码大概如下:

  1. class MyFrame( wx.Frame ):
  2.   def __init__ ( self, parent, title ):
  3.      wx.Frame.__init__( self, parent, -1, title, style = wx.DEFAULT_FRAME_STYLE | wx.WANTS_CHARS )
  4.      p = self.p = wx.Panel( self, -1 )
  5.      gbs = self.gbs = wx.GridBagSizer(5,5)
  6.      gbs.Add( wx.StaticText( p, -1, "something" ), (0,0) )
  7.      ....
  8.      self.Bind( wx.EVT_CHAR, self.onchar )

  9.   def onchar( self, evt )
  10.      print "Got you!"
复制代码
 楼主| 发表于 2004-4-15 12:30:08 | 显示全部楼层
呜呜,上 wxPython 上问过了

由于frame、panel都是不能接受focus的widget,所以做不到。

可选择的办法是:给所有可接受focus的控件增加 eventhandler,进行处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表