wxpython控件textctrl如何设置enter事件

wxpython中textctrl文本框控件常用的触发事件为“enter键入事件”,当键盘按下“enter”按钮时textctrl文本框被触发执行相应的动作。

wx.TextCtrl控件学习链接:https://docs.wxpython.org/wx.TextCtrl.html?highlight=textctrl#phoenix-title-event-handling

在这里插入图片描述

从上面截图的触发事件可以看出“enter键入事件”设置的触发事件为EVT_TEXT_ENTER,这个要求textctrl的style必须是wx.TE_PROCESS_ENTER。

在这里插入图片描述

否则会报错如下:

wx._core.wxAssertionError: C++ assertion ““HasFlag(0x0400)”” failed at …\src\common\textcmn.cpp(1210) in wxTextCtrlBase::OnDynamicBind(): Must have wxTE_PROCESS_ENTER for wxEVT_TEXT_ENTER to work

可以直接修改代码textctrl控件的style属性,如果是wxFormBuilder工具搭建的界面可以直接修改textctrl控件的style属性生成相应的代码。

(1)直接修改程序代码
在这里插入图片描述
通过textctrl控件的方法定义可以看出,style属性是紧跟在size属性后面的,只要找到textctrl定义中的size后面的一定为style属性。

        self.m_textCtrl25 = wx.TextCtrl(sbSizer3.GetStaticBox(), wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(600, -1), wx.TE_PROCESS_ENTER)
        # 设置文本框的enter事件,不点击查询按钮直接按enter就可以实现搜索功能
        self.m_textCtrl25.Bind(wx.EVT_TEXT_ENTER, self.search_id_info)

(2)通过wxFormBuilder设置textctrl的style属性

在这里插入图片描述

textctrl不设置style,默认style位置上取0:

self.m_textCtrl25 = wx.TextCtrl( sbSizer3.GetStaticBox(), wx.ID_ANY, wx.EmptyString, wx.Point( -1,-1 ), wx.Size( 500,-1 ), 0 )

textctrl的style选择wxTE_PROCESS_ENTER,style变成wx.TE_PROCESS_ENTER:

		self.m_textCtrl25 = wx.TextCtrl( sbSizer3.GetStaticBox(), wx.ID_ANY, wx.EmptyString, wx.Point( -1,-1 ), wx.Size( 500,-1 ), wx.TE_PROCESS_ENTER )
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Logintern09

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值