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中操作字符串之rstrip()方法的使用
May 19 Python
python使用正则表达式提取网页URL的方法
May 26 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
Python实现将json文件中向量写入Excel的方法
Mar 26 Python
Python实现的多进程和多线程功能示例
May 29 Python
pandas使用get_dummies进行one-hot编码的方法
Jul 10 Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 Python
Python接口测试结果集实现封装比较
May 01 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
May 12 Python
django在开发中取消外键约束的实现
May 20 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/04/24 PHP
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
将python代码和注释分离的方法
2018/04/21 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
Python之字典添加元素的几种方法
2020/09/30 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
我未来的职业规划范文
2014/01/11 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
飞屋环游记观后感
2015/06/08 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL