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学习笔记:字典的使用示例详解
Jun 13 Python
python根据给定文件返回文件名和扩展名的方法
Mar 27 Python
Python中的hypot()方法使用简介
May 18 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
Python高级用法总结
May 26 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
Python功能点实现:函数级/代码块级计时器
Jan 02 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
Mar 05 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
Python批量安装卸载1000个apk的方法
Apr 10 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 Python
python 带时区的日期格式化操作
Oct 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
php2html php生成静态页函数
2008/12/08 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
Google韩国首页图标动画效果
2007/08/26 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
原生JS实现音乐播放器的示例代码
2021/02/25 Javascript
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
Python get获取页面cookie代码实例
2018/09/12 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
pandas数据处理进阶详解
2019/10/11 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
医学专业个人求职自荐信格式
2013/09/23 职场文书
服装采购员岗位职责
2014/03/15 职场文书
化学专业自荐信
2014/05/28 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
给上级领导的感谢信
2015/01/22 职场文书
Python标准库之typing的用法(类型标注)
2021/06/02 Python
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
浅析Python中的套接字编程
2021/06/22 Python
MySQL约束超详解
2021/09/04 MySQL
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL