wxpython中控件对键盘输入无响应的可能原因
问题描述:
开发环境: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中控件对键盘输入无响应的可能原因的更多相关文章
- WPF进阶技巧和实战09-事件(1-路由事件、鼠标键盘输入)
		
理解路由事件 当有意义的事情发生时,有对象(WPF的元素)发送的用于通知代码的消息,就是事件的核心思想.WPF通过事件路由的概念增强了.NET事件模型.事件由允许源自某个元素的事件由另一个元素引发.例 ...
 - C# Winform中无焦点状态下获取键盘输入或者USB扫描枪数据
		
类文件: C#类文件 using System; using System.Collections.Generic; using System.Text; using System.Runtime.I ...
 - WinForm 无焦点获取键盘输入
		
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
 - iOS键盘输入屏幕上移
		
在iOS开法中经常会遇到键盘遮挡屏幕的事情(比如输入账号密码验证码等等),就使得原本都不大的屏幕直接占了一半甚至更多的位置,这倒无所谓,关键是挡住了下面的按钮.这样的话按钮的事件也就触发不了,最好的解 ...
 - VB模拟键盘输入的N种方法
		
VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计 ...
 - VC++6.0一些常见问题解决方法(打开多个窗口、行号、添加文件无响应、更改.exe图标及名称等等)
		
背景: 最近使用VC++6.0做一个界面,供测试CAN通信使用.由于客户希望我们提供简单方便的函数接口让其最快速使用CAN,DLL(动态链接库)是不二之选.做DLL需要两个VC窗口进行测试才方便.可是 ...
 - Android软键盘事件imeOptions响应
		
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 在android发开过程中,有时候需要对EditText的软键盘进行监听. 当点击软键盘回车位置按键的时候,需要实现 完成.前进.下 ...
 - 【转】python win32api win32gui win32con 简单操作教程(窗口句柄 发送消息 常用方法 键盘输入)
		
作者:https://blog.csdn.net/qq_16234613/article/details/79155632 附:https://www.programcreek.com/python/ ...
 - Android Design Support Library 中控件的使用简单介绍(一)
		
Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...
 
随机推荐
- NYOJ 232 How to eat more Banana
			
How to eat more Banana 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 A group of researchers are designing ...
 - 编辑被标记为“只读”的Word文档
			
从邮件接收到的Word文档,打开时总是被标记为“只读”,在阅读时对其进行编辑,但不能保存,会提示文档为只读的.要想对其进行编辑并保存,需要进行一定的操作. 进入文件所在的目录,鼠标右键点击Word文档 ...
 - 防火墙iptables介绍
			
防火墙: netfilter/iptables是集成在Linux2.4.X版本内核中的包过滤防火墙系统.该架构可以实现数据包过滤,网络地址转换以及数据包管理功能.linux中防火墙分为两部分:netf ...
 - 【CCF】通信网络 简单搜索
			
去重!不然有环就直接挂掉了...0分 #include<iostream> #include<cstdio> #include<string> #include&l ...
 - 【(好题)组合数+Lucas定理+公式递推(lowbit+滚动数组)+打表找规律】2017多校训练七 HDU 6129 Just do it
			
http://acm.hdu.edu.cn/showproblem.php?pid=6129 [题意] 对于一个长度为n的序列a,我们可以计算b[i]=a1^a2^......^ai,这样得到序列b ...
 - bzoj1411: [ZJOI2009]硬币游戏
			
1411: [ZJOI2009]硬币游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 965 Solved: 420[Submit][Status ...
 - hdu5396 Expression
			
Expression Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
 - AtCoder Grand Contest 005F - Many Easy Problems
			
$n \leq 200000$的树,从树上选$k$个点的一个方案会对$Ans_k$产生大小为“最小的包括这$k$个点的连通块大小”的贡献.求每个$Ans_k$.膜924844033. 看每个点对$An ...
 - 在echars上发布的半圆环形图
			
http://gallery.echartsjs.com/editor.html?c=xBJvoMcPfz&v=1
 - 将数字转换成Excel表头格式的字母序号
			
/** * 从0开始算起,0-25转A-Z * @param num * @return Character.valueOf((char)((num-1)+65))+&quo ...