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中控件对键盘输入无响应的可能原因

时间: 2024-12-28 13:27:08

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

重装mysql出现无响应解决

问题 在安装mysql数据库时,如果重新安装,很容易遇见apply security setting error,即在配置mysql启动服务时,在启动apply security setting时会出错, 在安装最后一步出现无响应卡死状态 原因 是卸载mysql时并没有完全删除文件,所以有必要手动清除这些,要清除的文件 解决方法 第一步:删除mysql的安装目录,一般为C:\Program Files目录下. 第二步:删除mysql的数据存放目录,一般在C:\Documents and Sett

notepad++ 输入中文无响应

如果是win7,到用户文件夹 C:\Users\xxxxxxxx\AppData\Roaming\Notepad++ 里面的config.xml 删掉,然后重新打开,应该就可以了, 代价是会删除之前所有的设置(快捷键,配置等),需要重新设定 在ANSI编码下的文件里面,默认的中文字符会被拆分成两个字符(删除中文字符的时候可以体会到),所以这时候如果设置是 "自动完成-单词自动完成" 且后边的是"从第1个字符开始"的时候就会默认从这个未知字符开始自动完成,NPP就会暴

问题解决——MFC SDI程序 CFormView中控件随窗口缩放

从来都是做对话框程序,这次想做个SDI的程序,想着用一下带Robbin界面的office2007风格,就不用使用那些花钱的商业控件/UI库了. 如果你不想看我打的文字,可以直接拷走代码,自己声明上定义再略作修改就可以用了,不需做任何修改. -------------------------------小尾巴首次登场----------------------------------- SDI程序,是要缩放的,如果是往里输入文字的话,这倒没什么,但是这次我使用的是CFormView类,里面加了控件

IOS键盘输入屏幕上移

在IOS开法中经常会遇到键盘遮挡屏幕的事情(比如输入账号密码验证码等等),就使得原本都不大的屏幕直接占了一半甚至更多的位置,这倒无所谓,关键是挡住了下面的按钮.这样的话按钮的事件也就触发不了,最好的解决办法就是当输入这些信息的时候让整个屏幕上移一个键盘的位置,或者上移到指定的位置. 首先一般输入的话都用的是UITextField,所以要监听用户什么时候开始输入和什么时候结束输入,直接设置代理代理就行了,要遵受 UITextFieldDelegate协议. //遵循协议 @interface Vi

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

VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样可以把很多重复性的键盘操作交给程序来模拟,省了很多精力,按键精灵就是这样的一个软件.那么我们怎样才能用VB来写一个程

解决SSH自动断线,无响应的问题。

在连接远程SSH服务的时候,经常会发生长时间后的断线,或者无响应(无法再键盘输入). 总体来说有两个方法: 1.依赖ssh客户端定时发送心跳. putty.SecureCRT.XShell都有这个功能,但是目测不太好用. 此外在Linux下: 1 2 3 4 5 #打开 sudo vim  / etc / ssh / ssh_config # 添加 ServerAliveInterval 20 ServerAliveCountMax 999 即每隔20秒,向服务器发出一次心跳.若超过999次请求

无响应脚本警告 - 含义和如何解决

无响应脚本警告 - 含义和如何解决 Firefox 可能会弹出这样的提示:“警告:不响应的脚本”,并伴随着以下内容——“当前页面的某个脚本正忙,或者已停止响应.您可以立即停止该脚本,或者您可以继续以等待该脚本结束.”本文介绍了出现此提示的原因,以及可能的解决方案和折衷的办法. 这个错误提示意思是 Firefox 认为有脚本在运行中失去了控制,如果不处理会导致 Firefox 挂起.出问题的脚本可能是您当前访问的页面中的,也可能是您安装的扩展里的,甚至是 Firefox 本身的. 目录 Webro

关于VS2012 生成或调试时无响应的另一种情况

最近在做一个项目,差不多结尾了. 然后某天发现,生成和调试都会卡好一会(差不多要1分钟吧)才可以正常开始. 然后各种找问题,重装VS,重装系统,什么中文输入法,结果都一样. 最后只能怀疑是项目 问题了,后来想起来主窗口使用了一个自己写的用户控件,这个控件是容器来的,然后里面的控件全部变成空白了,当然之前是正常的,后来不知道为什么变成这样,然后我就自己手动将控件添加回去这个控件内 在Form1.Designer.cs文件内的 this.xxxx.Controls.Add(this.button3)

python Tkinter接受键盘输入并保存文件

最近想用python写个切换host的小工具,折腾了好几天,终于实现了第一步. 采用Tkinter编程,text控件接受输入,然后点击save按钮,保存内容到当前文件夹下,文件名为hostb,如下两张图片: 直接上代码: #支持中文 #!coding:gbk #导入需要的包from Tkinter import *import timeimport osimport sys; #reload sysreload(sys); #设置系统的默认编码为utf8sys.setdefaultencodin