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 paramiko实现ssh远程访问的方法
Dec 03 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
对于Python中RawString的理解介绍
Jul 07 Python
Django卸载之后重新安装的方法
Mar 15 Python
详谈python http长连接客户端
Jun 12 Python
python实现图片批量压缩程序
Jul 23 Python
Python 列表的清空方式
Jan 13 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
Django执行源生mysql语句实现过程解析
Nov 12 Python
详解Python中openpyxl模块基本用法
Feb 23 Python
python 制作一个gui界面的翻译工具
May 14 Python
Django REST framework 限流功能的使用
Jun 24 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/09/25 PHP
PHP获取url的函数代码
2011/08/02 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python中文件遍历的两种方法
2014/06/16 Python
跟老齐学Python之集合的关系
2014/09/24 Python
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
Python 抓取动态网页内容方案详解
2014/12/25 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Python2随机数列生成器简单实例
2017/09/04 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
详解python中的index函数用法
2019/08/06 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
物流专业求职计划书
2014/01/10 职场文书
签约仪式主持词
2014/03/19 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题