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采用getopt解析命令行输入参数实例
Sep 30 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 Python
使用Turtle画正螺旋线的方法
Sep 22 Python
Python反爬虫技术之防止IP地址被封杀的讲解
Jan 09 Python
Python递归函数实例讲解
Feb 27 Python
Python hashlib模块加密过程解析
Nov 05 Python
Django Form and ModelForm的区别与使用
Dec 06 Python
pandas的resample重采样的使用
Apr 24 Python
python中什么是面向对象
Jun 11 Python
Python操作Word批量生成合同的实现示例
Aug 28 Python
Python面向对象之成员相关知识总结
Jun 24 Python
python三子棋游戏
May 04 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判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
python中实现php的var_dump函数功能
2015/01/21 Python
使用Python多线程爬虫爬取电影天堂资源
2016/09/23 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
20个常用Python运维库和模块
2018/02/12 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
2019/12/18 Python
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
计算机系毕业生推荐信
2013/11/06 职场文书
党员学习十八大感想
2014/01/17 职场文书
健康家庭事迹材料
2014/05/02 职场文书
小学家长意见怎么写
2015/06/03 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android
Elasticsearch 索引操作和增删改查
2022/04/19 Python