wxpython中Textctrl回车事件无效的解决方法_python

本文实例讲述了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 Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索wxpython
, 无效
, 解决方法
, Textctrl
回车事件
wxpython textctrl、wxpython treectrl、wxpython spinctrl、wxpython statictext、wxpython text,以便于您获取更多的相关知识。

时间: 2024-10-26 14:57:56

wxpython中Textctrl回车事件无效的解决方法_python的相关文章

IE浏览器中图片onload事件无效的解决方法_javascript技巧

故事模式实现是只加载当前浏览的照片和它下面的两张照片,加载照片的时候才会加载和渲染评论区,图片没有加载前会用一个一象素的图片占位,并用一个loading类将显示出一个loading背景图,判断在可视区的时候替换成真正的图片,图片加载成功后删除loading类. 问题出在最后面,测试的时候发现在IE下loading类无法删除,当时代码如下: 复制代码 代码如下: img.src = _src;img.src = _src;img.onload = function(){   _con.delCla

Radio 单选JS动态添加的选项onchange事件无效的解决方法_javascript技巧

//记一个问题(已经解决2016.5.5) //在公司项目中遇见一个添加单选项的需求,采用ajax一步请求.为节约资源添加后不刷新网页,js动态改变页面 //当选择到动态添加的单选项,执行绑定事件 radio 单选JS动态添加的选项,onchange事件无效.使用delegate()函数可以解决该问题!!! delegate(): delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数. 使用 delegate() 方法的事件处

IE6浏览器中window.location.href无效的解决方法_javascript技巧

本文实例讲述了IE6浏览器中window.location.href无效的解决方法.分享给大家供大家参考.具体方法如下: window.location.href是js中跳转功能,很多人在ie6中都会发现window.location.href不能跳转了,下面我给大家来介绍一下其原因与解决方法. 问题代码如下: 复制代码 代码如下: <a href="javascript:void(0);" onclick="javascript:test();">点击

ASP.NET在MVC中MaxLength特性设置无效的解决方法_实用技巧

本文实例讲述了ASP.NET在MVC中MaxLength特性设置无效的解决方法.分享给大家供大家参考.具体分析如下: 一.问题: 在ASP.NET MVC项目中,给某个Model打上了MaxLength特性如下: 复制代码 代码如下: public class SomeClass {     [MaxLength(16, ErrorMessage = "最大长度16")]     public string SomeProperty{get;set;} } 但在其对应的表单元素中并没有

在python的WEB框架Flask中使用多个配置文件的解决方法_python

有些框架本身就支持多配置文件,例如Ruby On Rails,nodejs下的expressjs.python下的Flask虽然本身支持配置文件管理, 但单纯使用from_object和from_envvar却不是那么方便.有没有更好的办法? 答案是Flask-Environments这个包.它能通过FLASK_ENV环境变量自动选择开发环境配置或生产环境配置.使用之前要先安装: 复制代码 代码如下: $ sudo pip install Flask-Environments 然后修改confi

IE8中动态创建script标签onload无效的解决方法_javascript技巧

本文实例讲述了IE8中动态创建script标签onload无效的解决方法.分享给大家供大家参考.具体分析如下: 今天做项目,发现一个奇怪的问题,动态创建的script标签在IE8下无法触发onload事件. 代码如下: 复制代码 代码如下: var loadJs = function(src, fun){     var script = null;     script = document.createElement("script");     script.type = &qu

PHP中file_exists()判断中文文件名无效的解决方法_php技巧

本文实例讲述了PHP中file_exists()判断中文文件名无效的解决方法.分享给大家供大家参考.具体方法如下: php中判断文件是否存在我们会使用file_exists函数或is_file函数,但在使用file_exists时如果你文件名或路径是中文在uft8编码文档时是无效.本文就来解决此问题,下面我们一起来看看. 定义和用法:file_exists() 函数检查文件或目录是否存在. 如果指定的文件或目录存在则返回 true,否则返回 false. 例子1 复制代码 代码如下: <?php

ie11-IE11 onpropertychange事件无效 如何解决

问题描述 IE11 onpropertychange事件无效 如何解决 textbox是只读的,需要在后台或js修改textbox值时触发事件,而IE11onpropertychange事件无效,请问该如何解决这个问题 解决方案 https://msdn.microsoft.com/library/dn265032(v=vs.85).aspx 解决方案二: onpropertychange事件

js中style.display=&quot;&quot;无效的解决方法_javascript技巧

本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多的操作,但如果我们style.display=""可能导致没有效果. 看下面一段代码: 复制代码 代码如下: <style>  #name  {      display:none;  } </style> </head> <body> &l