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逐行读取文件内容的三种方法
Jan 20 Python
Python操作SQLite简明教程
Jul 10 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
python去除扩展名的实例讲解
Apr 23 Python
python实现多层感知器
Jan 18 Python
python打造爬虫代理池过程解析
Aug 15 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
Mar 10 Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
Apr 22 Python
Django在Model保存前记录日志实例
May 14 Python
用python对excel进行操作(读,写,修改)
Dec 25 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
Jan 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模板,主要想体现一下思路
2006/12/25 PHP
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
dess中一个简单的多路委托的实现
2010/07/20 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
Js代码中的span拼接问题解决
2019/11/22 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
详解Python3中yield生成器的用法
2015/08/20 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
pandas分区间,算频率的实例
2019/07/04 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
Python中常用的os操作汇总
2020/11/05 Python
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
售后主管岗位职责
2013/12/08 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
村官个人总结范文
2015/03/03 职场文书
淮海战役观后感
2015/06/11 职场文书
小学教师教育随笔
2015/08/14 职场文书
2016大学军训心得体会
2016/01/11 职场文书
导游词之太原天龙山
2020/01/02 职场文书
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL