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中的偏函数
Apr 27 Python
python验证码识别的实例详解
Sep 09 Python
Python面向对象程序设计之继承与多继承用法分析
Jul 13 Python
Python 打印中文字符的三种方法
Aug 14 Python
python gensim使用word2vec词向量处理中文语料的方法
Jul 05 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
pygame实现非图片按钮效果
Oct 29 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
Python如何通过百度翻译API实现翻译功能
Apr 02 Python
python实现飞船大战
Apr 24 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
Django项目在pycharm新建的步骤方法
Mar 02 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 巧用数组降低程序的时间复杂度
2010/01/01 PHP
如何利用PHP执行.SQL文件
2013/07/05 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2014/10/21 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
python多线程编程方式分析示例详解
2013/12/06 Python
Python中使用logging模块打印log日志详解
2015/04/05 Python
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
matplotlib实现区域颜色填充
2019/03/18 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
Python3之字节串bytes与字节数组bytearray的使用详解
2019/08/27 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
大学生毕业的自我鉴定
2013/11/13 职场文书
优秀教师个人材料
2014/12/15 职场文书
读后感作文评语
2014/12/25 职场文书