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如何判断数独是否合法
Sep 08 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
python pandas时序处理相关功能详解
Jul 03 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
python中栈的原理及实现方法示例
Nov 27 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
Python函数生成器原理及使用详解
Mar 12 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
Python使用sys.exc_info()方法获取异常信息
Jul 23 Python
关于Python错误重试方法总结
Jan 03 Python
python Matplotlib基础--如何添加文本和标注
Jan 26 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出错界面
2006/10/09 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
php实现可逆加密的方法
2015/08/11 PHP
php-msf源码详解
2017/12/25 PHP
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
livereload工具实现前端可视化开发【推荐】
2016/12/23 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
彻底理解Python中的yield关键字
2019/04/01 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
瑞士国际航空官网:SWISS
2016/07/21 全球购物
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
KTV的创业计划书范文
2014/02/02 职场文书
《争吵》教学反思
2014/02/15 职场文书
建筑安全责任书范本
2014/07/24 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
高中生军训感言
2015/08/01 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL