abstract:本文實(shí)例講述了wxpython中Textctrl回車(chē)事件無(wú)效的解決方法。分享給大家供大家參考,具體如下:今天使用wxptyhon的Textctrl控件開(kāi)發(fā)客戶端時(shí)遇到了一個(gè)問(wèn)題, 按照HTML表單的邏輯, 我們?cè)赥extctrl里回車(chē)應(yīng)該提交查詢, 但是wxpython的Textctrl很奇怪, 回車(chē)了居然是像Tab作用一樣跳轉(zhuǎn)到下一個(gè)控件.這樣的話,要完成查詢, 要么是鼠標(biāo)點(diǎn)擊按鈕, 要么需要按
本文實(shí)例講述了wxpython中Textctrl回車(chē)事件無(wú)效的解決方法。分享給大家供大家參考,具體如下:
今天使用wxptyhon的Textctrl控件開(kāi)發(fā)客戶端時(shí)遇到了一個(gè)問(wèn)題, 按照HTML表單的邏輯, 我們?cè)赥extctrl里回車(chē)應(yīng)該提交查詢, 但是wxpython的Textctrl很奇怪, 回車(chē)了居然是像Tab作用一樣跳轉(zhuǎn)到下一個(gè)控件.這樣的話,要完成查詢, 要么是鼠標(biāo)點(diǎn)擊按鈕, 要么需要按兩次或者兩次以上.
Google了一下, 無(wú)答案, 但是得到了一些有用的資料:
TextCtrl支持的事件類型:
EVT_TEXT:文本因用戶的輸入或在程序中使用SetValue()而被改變,都要產(chǎn)生該事件。
EVT_TEXT_ENTER:當(dāng)用戶在一個(gè)wx.TE_PROCESS_ENTER樣式的文本控件中按下了回車(chē)鍵時(shí),產(chǎn)生該事件。
EVT_TEXT_URL:如果在Windows系統(tǒng)上,wx.TE_RICH或wx.TE_RICH2樣式被設(shè)置了,并且wx.TE_AUTO_URL樣式也被設(shè)置了,那么當(dāng)在文本控件內(nèi)的URL上發(fā)生了一個(gè)鼠標(biāo)事件時(shí),該事件被觸發(fā)。
EVT_TEXT_MAXLEN:如果使用SetMaxLength()指定了該控件的最大長(zhǎng)度,那么當(dāng)用戶試圖輸入更長(zhǎng)的字符串時(shí),該事件被觸發(fā)。
例如,這時(shí)給用戶顯示一個(gè)警告消息。
加上wxptyon Demos的例子, 終于悟出了解決方案:
1. 聲明實(shí)例時(shí)需要加上style屬性, 如:
wx.TextCtrl(self,style=wx.TE_PROCESS_ENTER)
2. 綁定TextCtrl的回車(chē)事件
一開(kāi)始我使用了類似按鈕的綁定方式, 結(jié)果沒(méi)作用
self.element_panel.searchInput.Bind(wx.EVT_TEXT_ENTER, self.onSearch)
正確的聲明方式應(yīng)該是:
self.Bind(wx.EVT_TEXT_ENTER, self.onSearch, self.element_panel.searchInput)
然后在Frame或者Panel里聲明相應(yīng)的方法處理即可.
更多關(guān)于wxpython中Textctrl回車(chē)事件無(wú)效的解決方法請(qǐng)關(guān)注PHP中文網(wǎng)(ipnx.cn)其他文章!