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中使用Tkinter模块创建GUI程序实例
Jan 14 Python
Python素数检测实例分析
Jun 15 Python
Python编程中的for循环语句学习教程
Oct 14 Python
Python Django使用forms来实现评论功能
Aug 17 Python
详解Python多线程
Nov 14 Python
Python AES加密模块用法分析
May 22 Python
Python2和Python3中print的用法示例总结
Oct 25 Python
python opencv 直方图反向投影的方法
Feb 24 Python
详解字符串在Python内部是如何省内存的
Feb 03 Python
pandas分组聚合详解
Apr 10 Python
Python计算信息熵实例
Jun 18 Python
python 基于selectors库实现文件上传与下载
Dec 31 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(3) php 函数
2010/02/15 PHP
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
新浪的图片新闻效果
2007/01/13 Javascript
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
Node.js中环境变量process.env的一些事详解
2017/10/26 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
python批量提取word内信息
2015/08/09 Python
Python入门之后再看点什么好?
2018/03/05 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
pandas按条件筛选数据的实现
2021/02/20 Python
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
运动会主持词大全
2015/07/02 职场文书
欢迎新生标语2015
2015/07/16 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书