wxpython中Textctrl回车事件无效的解决方法


Posted in Python onJuly 21, 2016

本文实例讲述了wxpython中Textctrl回车事件无效的解决方法。分享给大家供大家参考,具体如下:

今天使用wxptyhon的Textctrl控件开发客户端时遇到了一个问题, 按照HTML表单的逻辑, 我们在Textctrl里回车应该提交查询, 但是wxpython的Textctrl很奇怪, 回车了居然是像Tab作用一样跳转到下一个控件.这样的话,要完成查询, 要么是鼠标点击按钮, 要么需要按两次或者两次以上.

Google了一下, 无答案, 但是得到了一些有用的资料:

TextCtrl支持的事件类型:

EVT_TEXT:文本因用户的输入或在程序中使用SetValue()而被改变,都要产生该事件。

EVT_TEXT_ENTER:当用户在一个wx.TE_PROCESS_ENTER样式的文本控件中按下了回车键时,产生该事件。

EVT_TEXT_URL:如果在Windows系统上,wx.TE_RICH或wx.TE_RICH2样式被设置了,并且wx.TE_AUTO_URL样式也被设置了,那么当在文本控件内的URL上发生了一个鼠标事件时,该事件被触发。

EVT_TEXT_MAXLEN:如果使用SetMaxLength()指定了该控件的最大长度,那么当用户试图输入更长的字符串时,该事件被触发。

例如,这时给用户显示一个警告消息。

加上wxptyon Demos的例子, 终于悟出了解决方案:

1. 声明实例时需要加上style属性, 如:

wx.TextCtrl(self,style=wx.TE_PROCESS_ENTER)

2. 绑定TextCtrl的回车事件

一开始我使用了类似按钮的绑定方式, 结果没作用

self.element_panel.searchInput.Bind(wx.EVT_TEXT_ENTER, self.onSearch)

正确的声明方式应该是:

self.Bind(wx.EVT_TEXT_ENTER, self.onSearch, self.element_panel.searchInput)

然后在Frame或者Panel里声明相应的方法处理即可.

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python数组遍历的简单实现方法小结
Apr 27 Python
python 获取网页编码方式实现代码
Mar 11 Python
python数据类型_字符串常用操作(详解)
May 30 Python
Atom的python插件和常用插件说明
Jul 08 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
解决python多行注释引发缩进错误的问题
Aug 23 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
Apr 08 Python
什么是python类属性
Jun 10 Python
使用Python脚本对GiteePages进行一键部署的使用说明
May 27 Python
python随机打印成绩排名表
Jun 23 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 #Python
python装饰器初探(推荐)
Jul 21 #Python
python魔法方法-自定义序列详解
Jul 21 #Python
浅谈Python 字符串格式化输出(format/printf)
Jul 21 #Python
分享python数据统计的一些小技巧
Jul 21 #Python
python中print的不换行即时输出的快速解决方法
Jul 20 #Python
Python全局变量用法实例分析
Jul 19 #Python
You might like
PHP控制网页过期时间的代码
2008/09/28 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
PHP的5个安全措施小结
2012/07/17 PHP
php读取3389的脚本
2014/05/06 PHP
将二维数组转为一维数组的2种方法
2014/05/26 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
flash 得到自身url参数的代码
2009/11/15 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
2017/08/03 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
Vue退出登录时清空缓存的实现
2019/11/12 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
Django发送邮件功能实例详解
2019/09/02 Python
python数据爬下来保存的位置
2020/02/17 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
法人代表身份证明书及授权委托书
2014/09/16 职场文书
一个独生女的故事观后感
2015/06/04 职场文书