码迷,mamicode.com
首页 > 编程语言 > 详细

wxpython中控件对键盘输入无响应的可能原因

时间:2014-08-09 18:12:28      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:io   2014   ar   问题   代码   log   python   window   

问题描述:

开发环境:Win7 32bit + Python2.7.6 + WxPython 3.0.1-b20140707

开发某初级CAD软件中,需要实现点击TreeCtrl控件的相应选择,实现GLCanvas窗口中三维空间点、线和面的添加和删除功能。对于点的添加有两种途径,再绑定TreeCtrl控件的事件后,先会弹出一个Dialog要求用户输入XYZ坐标,通过Apply按钮持续添加,或者OK按钮直接在GLCanvas窗口中鼠标拾取坐标添加,键盘e执行添加点,键盘q执行退出操作。

为此在GLCanvas控件里绑定了EVT_CHAR的事件响应和相关操作,在TreeCtrl控件的响应中添加相关Dialog窗口并设置了Event.Skip()和GLCanvas的SetFocus(),接着调试一切正常。接下来剔除Dialog窗口,改为直接在GLCanvas窗口通过鼠标加键盘操作实现点的添加,出状况了,按键无反应且伴有系统出错提示音,网上搜索也没有直接的答案。傅孟真说“上穷碧落下黄泉,动手动脚找东西”,不得己祭出《WxPython 2.8 Application Development Cookbook》重新温习,在第二章中示例代码中发现一个解决思路(因为去年搞C#加OpenTK开发遇到过类似的问题),给GLCanvas加上EVT_ENTER_WINDOW事件并在其中设置SetFocus(),问题解决但不完美(鼠标离开GLCanvas窗口按键盘仍然有系统出错提示音)。

疑惑:为什么在TreeCtrl的事件响应中,已经设置GLCanvas的SetFocus(),咋就不起作用,非得要在这之前弹出一个Dialog然后才行?

wxpython中控件对键盘输入无响应的可能原因,布布扣,bubuko.com

wxpython中控件对键盘输入无响应的可能原因

标签:io   2014   ar   问题   代码   log   python   window   

原文地址:http://www.cnblogs.com/pasuka/p/3901149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!