Rumah pembangunan bahagian belakang Tutorial Python wxpython中Textctrl回车事件无效的解决方法

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

Aug 04, 2016 am 08:55 AM
wxpython tidak sah Penyelesaian

本文实例讲述了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)

Salin selepas log masuk

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程序设计有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Operasi pencetak tidak dapat diselesaikan ralat 0x0000709 Penyelesaian Operasi pencetak tidak dapat diselesaikan ralat 0x0000709 Penyelesaian Apr 20, 2024 pm 10:10 PM

Operasi pencetak tidak dapat diselesaikan ralat 0x0000709 Penyelesaian

Kaedah untuk menyelesaikan masalah aksara Cina bercelaru dalam PHP Dompdf Kaedah untuk menyelesaikan masalah aksara Cina bercelaru dalam PHP Dompdf Mar 05, 2024 pm 03:45 PM

Kaedah untuk menyelesaikan masalah aksara Cina bercelaru dalam PHP Dompdf

Penyelesaian: Ralat Soket semasa mengendalikan permintaan HTTP Penyelesaian: Ralat Soket semasa mengendalikan permintaan HTTP Feb 25, 2024 pm 09:24 PM

Penyelesaian: Ralat Soket semasa mengendalikan permintaan HTTP

Apakah yang perlu saya lakukan jika telefon Black Shark saya terus dihidupkan dan dimatikan? Penyelesaiannya terbongkar! Apakah yang perlu saya lakukan jika telefon Black Shark saya terus dihidupkan dan dimatikan? Penyelesaiannya terbongkar! Mar 25, 2024 am 09:36 AM

Apakah yang perlu saya lakukan jika telefon Black Shark saya terus dihidupkan dan dimatikan? Penyelesaiannya terbongkar!

Linux Oops Didedahkan: Punca Ralat dan Penyelesaian Linux Oops Didedahkan: Punca Ralat dan Penyelesaian Mar 20, 2024 am 11:15 AM

Linux Oops Didedahkan: Punca Ralat dan Penyelesaian

Bagaimana untuk menyelesaikan ralat Linux 'Tiada laluan ke hos' Bagaimana untuk menyelesaikan ralat Linux 'Tiada laluan ke hos' Feb 26, 2024 pm 12:24 PM

Bagaimana untuk menyelesaikan ralat Linux 'Tiada laluan ke hos'

Apakah maksud kod ralat 678 dan cara menyelesaikannya Apakah maksud kod ralat 678 dan cara menyelesaikannya Feb 29, 2024 am 10:28 AM

Apakah maksud kod ralat 678 dan cara menyelesaikannya

Panduan Akses Masuk Laman Web Rasmi DeepSeek Menyelesaikan masalah biasa yang tidak dapat dilog masuk Panduan Akses Masuk Laman Web Rasmi DeepSeek Menyelesaikan masalah biasa yang tidak dapat dilog masuk Feb 19, 2025 pm 04:30 PM

Panduan Akses Masuk Laman Web Rasmi DeepSeek Menyelesaikan masalah biasa yang tidak dapat dilog masuk

See all articles