wxpython中Textctrl回车事件无效的解决方法
本文实例讲述了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程序设计有所帮助。
相关推荐
-
在Ubuntu系统下安装使用Python的GUI工具wxPython
(一)wxpython的安装 Ubuntu下的安装,还是比较简单的. #使用:apt-cache search wxpython 测试一下,可以看到相关信息 dizzy@dizzy-pc:~/Python$ apt-cache search wxpython cain - simulations of chemical reactions cain-examples - simulations of chemical reactions cain-solvers - simulations of
-
python通过wxPython打开一个音频文件并播放的方法
本文实例讲述了python通过wxPython打开一个音频文件并播放的方法.分享给大家供大家参考.具体如下: 这段代码片段使用wx.lib.filebrowsebutton.FileBrowseButton控件打开一个wav文件,使用wx.Sound播放 import wx import wx.lib.filebrowsebutton class MyFrame(wx.Frame): def __init__(self, parent, mytitle, mysize): wx.Frame.__
-
wxPython框架类和面板类的使用实例
本文实例讲述了wxPython框架类和面板类的使用方法,分享给大家供大家参考.具体分析如下: 实现代码如下: import wx class MyApp(wx.App): #自定义应用程序类,类中调用自定义的框架类 def OnInit(self): self.frame = MyFrame(None, title = "My Main Frame jb51.net") self.SetTopWindow(self.frame) self.frame.Show() return Tru
-
wxpython中自定义事件的实现与使用方法分析
本文实例讲述了wxpython中自定义事件的实现与使用方法.分享给大家供大家参考,具体如下: 创建自定义事件的步骤: ① 定义事件类,该事件类必须继承自wx.PyCommandEvent,并定义get和set方法来获取和设置事件参数. ② 创建一个事件类型和一个绑定器对象去绑定该事件到特定的对象. ③ 创建自定义事件对象,设置事件参数,并且使用ProcessEvent()方法将这个实例引入事件处理系统. ④ 绑定自定义事件的event handler. ⑤ 在event handler中响应事件
-
wxPython事件驱动实例详解
本文实例讲述了wxPython的事件驱动机制,分享给大家供大家参考.具体方法如下: 先来看看如下代码: #!/usr/bin/python # moveevent.py import wx #导入wx库 class MoveEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(250, 180)) #窗口大小为(250, 180) wx.St
-
wxpython学习笔记(推荐查看)
一.简介 wxPython是Python编程语言的一个GUI工具箱.他使得Python程序员能够轻松的创建具有健壮.功能强大的图形用户界面的程序.它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定.而wxWidgets是用C++语言写成的.和Python语言与wxWidgets GUI工具库一样,wxPython是开源软件.这意味着任何人都可以免费地使用它并且可以查看和修改它的源代码,或者贡献补丁,增加功能.wxPython是跨平台的.这意味着同一个程序可以不经修改地在多种平
-
wxPython学习之主框架实例
本文实例讲述了wxPython主框架的简单用法,分享给大家供大家参考.具体如下: 程序代码如下: import wx class MyApp(wx.App): def OnInit(self): wx.MessageBox("Hello jb51.net") return True #返回True表示框架正常运行 if __name__ == "__main__": app = MyApp(False) #False参数表示不进行文件重定向 app.MainLoop
-
wxpython 学习笔记 第一天
它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定.而wxWidgets是用C++语言写成的. 和Python语言与wxWidgets GUI工具库一样,wxPython是开源软件.这意味着任何人都可以免费地使用它并且可以查看和修改它的源代码,或者贡献补丁,增加功能. wxPython是跨平台的.这意味着同一个程序可以不经修改地在多种平台上运行.现今支持的平台有:32位微软Windows操作系统.大多数Unix或类Unix系统.苹果Mac OS X. 由于使用Python作为
-
wxPython中文教程入门实例
wxPython中文教程入门实例 wx.Window 是一个基类,许多构件从它继承.包括 wx.Frame 构件.可以在所有的子类中使用 wx.Window 的方法. wxPython的几种方法:* SetTitle( string title ) -- 设置窗口标题.只可用于框架和对话框. * SetToolTip( wx.ToolTip tip ) -- 为窗口添加提示. * SetSize( wx.Size size ) -- 设置窗口的尺寸. * SetPosition( wx.Poin
-
windows下wxPython开发环境安装与配置方法
安装文件准备: 安装文件 下载地址 python-2.6.2.msi http://www.python.org/download/ wxPython2.8-win32-unicode-2.8.10.1-py26.exe wxPython2.8-win32-docs-demos-2.8.10.1.exe http://www.wxpython.org/download.php py2exe-0.6.9.win32-py2.6.exe http://sourceforge.net/projects
-
wxPython 入门教程
这篇文章是关于 wxPython,但 wxPython 实际是两件事物的组合体:Python 脚本语言和 GUI 功能的 wxWindows 库(关于 wxWindows 的介绍,请参阅 developerWorks上的 "细述 wxWindows" ).wxWindows 库是为了最大可移植性的 C/C++ 库,而抽取 GUI 功能.所以 wxWindows 应用程序与生俱来地可以运行在 Windows.带 X.KDE 或 Gnome 的 UNIX 或者 wxWindows 已移植到
-
使用wxpython实现的一个简单图片浏览器实例
上次我爬了n多图片,但是浏览的时候有一个问题. 图片浏览器的浏览一般都是按名称排的,而我对图片的命名是按照数字递增的.比如3总是会排在10后面,也就无法快速地浏览图片了. 所以,出于方便自己查阅图片,也出于学习,决定做一个自己的图片浏览器. 目标:浏览目录,通过滚轮不断显示同一个文件夹下的图片,并自定义排序. 步骤0:要实现图形界面,我使用wxPython. 至于如何安装和简单地使用wxpython,可以到网上检索,一大堆资料. 以下步骤默认你已经知道如何生成一个自己的frame. 步骤1:浏览
-
Python实例之wxpython中Frame使用方法
本节为大家分享的例子是wxpython Frame的用法. 例子: 复制代码 代码如下: #!/usr/bin/python # -*- coding: GBK -*- # simple.py import wx app = wx.App() frame = wx.Frame(None) frame.Show() app.MainLoop() 例2, 复制代码 代码如下: #!/usr/bin/python告诉程序 python 解释器的路径,只是在 linux 系统下有用,在 Win
随机推荐
- Vue.js每天必学之组件与组件间的通信
- mysql查询语句中用户变量的使用代码解析
- Spring MVC之WebApplicationContext_动力节点Java学院整理
- IOS 实现简单的弹幕功能
- xml 与javascript结合的问题解决方法
- JavaScript实现基于Cookie的存储类实例
- php中使用__autoload()自动加载未定义类的实现代码
- YII2数据库查询实践
- php结合md5实现的加密解密方法
- 一个非常全面的javascript URL解析函数和分段URL解析方法
- c#简单工厂、工厂方法与抽象工厂的区别分析
- android studio集成ijkplayer的示例代码
- Okhttp3实现爬取验证码及获取Cookie的示例
- 详解数据库多表连接查询的实现方法
- 利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
- jQuery使用ajax跨域获取数据的简单实例
- jquery表单插件form使用方法详解
- MsgBox函数语言参考
- 解析StreamReader与文件乱码问题的解决方法
- 如何查找YUM安装的JAVA_HOME环境变量详解