免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4845 | 回复: 5

如何bind event设置wxpython程序界面的焦点 [复制链接]

论坛徽章:
0
发表于 2010-03-23 11:53 |显示全部楼层
2_abo8888882006.jpg

我是如下bind的,
self.Bind(wx.EVT_BUTTON, self.OnClickSet, self.cfgBtn)
self.Bind(wx.EVT_TEXT_ENTER, self.OnInputISN, self.isnText)
self.Bind(wx.EVT_IDLE, self.OnIsnFocus)
这样可以实现空闲时focus在我的输入框内,可是其他的工具按钮,如set就无法使用啦,点击毫无反应

也试过self.isnText.SetFoucs只在初始化时有效,在其他地方执行的时候,可能需要其他的界面刷新动作,还是没有实现

请高人帮忙啊,谢谢

论坛徽章:
0
发表于 2010-03-23 13:44 |显示全部楼层
在其他的每个地方都加上个self.isnText.SetFoucs,或者把这个操作写个单独的函数,每次进行别的操作结束时都调用这个函数

论坛徽章:
0
发表于 2010-03-23 14:04 |显示全部楼层
self.isnText.SetFoucs
这个 操作 无效 ,我 有在 其他 操作 之后 ,使用此命令 回复 foucs ,但是 没有 效果

论坛徽章:
0
发表于 2010-03-23 14:07 |显示全部楼层
self.Bind(wx.EVT_BUTTON, self.OnClickSet, self.cfgBtn)
self.Bind(wx.EVT_TEXT_ENTER, self.OnInputISN, self.isnText)
self.Bind(wx.EVT_IDLE, self.OnIsnFocus)


还有 ,如果 将self.Bind(wx.EVT_IDLE, self.OnIsnFocus)
改为self.Bind(wx.EVT_IDLE, self.OnIsnFocus,self.isnText) ,这个也是讲的通的 ,可是 在其他操作对他进行self.isnText.SetFoucs后, 也是 无效的 ,但是 set 设置等其他 按钮 是 可用的啦 ,,没懂为何会 如此 。

论坛徽章:
0
发表于 2010-03-23 15:34 |显示全部楼层
如果在别的类里面用self.isnText.SetFoucs当然是无效的了,此self已经非彼self了。可以用
  1. wx.FindWindowById(1).SetFoucs()
复制代码
上面的代码假设self.isnText的ID是1

论坛徽章:
0
发表于 2010-03-23 19:31 |显示全部楼层
有 传 frame参数 到其他类中,而且 在其他类或线程中 也有对界面  作其他 操作,都可以实现 ,就是这个 SetFoucs 不行 ,我先试试 这个wx.FindWindowById(1).SetFoucs()

谢谢 盖茨
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP