问题描述:

开发环境: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中控件对键盘输入无响应的可能原因的更多相关文章

  1. WPF进阶技巧和实战09-事件(1-路由事件、鼠标键盘输入)

    理解路由事件 当有意义的事情发生时,有对象(WPF的元素)发送的用于通知代码的消息,就是事件的核心思想.WPF通过事件路由的概念增强了.NET事件模型.事件由允许源自某个元素的事件由另一个元素引发.例 ...

  2. C# Winform中无焦点状态下获取键盘输入或者USB扫描枪数据

    类文件: C#类文件 using System; using System.Collections.Generic; using System.Text; using System.Runtime.I ...

  3. WinForm 无焦点获取键盘输入

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  4. iOS键盘输入屏幕上移

    在iOS开法中经常会遇到键盘遮挡屏幕的事情(比如输入账号密码验证码等等),就使得原本都不大的屏幕直接占了一半甚至更多的位置,这倒无所谓,关键是挡住了下面的按钮.这样的话按钮的事件也就触发不了,最好的解 ...

  5. VB模拟键盘输入的N种方法

    VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计 ...

  6. VC++6.0一些常见问题解决方法(打开多个窗口、行号、添加文件无响应、更改.exe图标及名称等等)

    背景: 最近使用VC++6.0做一个界面,供测试CAN通信使用.由于客户希望我们提供简单方便的函数接口让其最快速使用CAN,DLL(动态链接库)是不二之选.做DLL需要两个VC窗口进行测试才方便.可是 ...

  7. Android软键盘事件imeOptions响应

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 在android发开过程中,有时候需要对EditText的软键盘进行监听. 当点击软键盘回车位置按键的时候,需要实现 完成.前进.下 ...

  8. 【转】python win32api win32gui win32con 简单操作教程(窗口句柄 发送消息 常用方法 键盘输入)

    作者:https://blog.csdn.net/qq_16234613/article/details/79155632 附:https://www.programcreek.com/python/ ...

  9. Android Design Support Library 中控件的使用简单介绍(一)

    Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...

随机推荐

  1. Sort a linked list in O(n log n) time using constant space complexity.

    因为题目要求复杂度为O(nlogn),故可以考虑归并排序的思想. 归并排序的一般步骤为: 1)将待排序数组(链表)取中点并一分为二: 2)递归地对左半部分进行归并排序: 3)递归地对右半部分进行归并排 ...

  2. Codeforces Round #307 (Div. 2)

    A. GukiZ and Contest time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  3. hdu2063 二分图匹配,匈牙利算法

    #include <stdio.h> #include <string.h> int n1,n2,m,ans; ]; //记录V2中的点匹配的点的编号 ]; //记录V2中的每 ...

  4. MHA 高可用集群搭建(二)

    MHA 高可用集群搭建安装scp远程控制http://www.cnblogs.com/kevingrace/p/5662839.html yum install openssh-clients mys ...

  5. CocoaAsyncSocket一个第三方Socket库

    github地址:https://github.com/robbiehanson/CocoaAsyncSocket github上的不完整,cocochina也有demohttp://code4app ...

  6. 【Luogu】P3391文艺平衡树(Splay)

    题目链接 ddosvoid和自为风月马前卒教了我这道题 他们好强啊 如果我们要反转区间[l,r] 我们首先把l的前驱旋转到根节点 再把r的后继旋转到根节点的右儿子 那么此时根节点的右儿子的左儿子所代表 ...

  7. 【Luogu】P2340奶牛会展

    题目链接 突发奇想可以用f[i]表示智商和为i的时候情商最大是多少.这样就变成了一个背包问题. 最后更新答案的时候从0到最大背包容量遍历,最后答案是最大的i+f[i]; 但是虽然答案只能从0到m里选, ...

  8. spring工作机制及为什么要用?

    spring工作机制及为什么要用?1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作.2.DispatcherSer ...

  9. SHUoj 神无月排位赛

    神无月排位赛 发布时间: 2017年7月8日 21:06   最后更新: 2017年7月8日 22:35   时间限制: 1000ms   内存限制: 128M 描述 <神无月>作为盛大游 ...

  10. MongoDB_副本集集群模式

    主从模式: 在10.3.13.213 主节点, 10.3.2.33 从节点.mongodb 安装路径均为:/usr/local/server/mongodb 参考文章:http://www.lance ...