wxpython中Textctrl回車事件無效的解決方法
本文實例講述了wxpython中Textctrl回車事件無效的解決方法。分享給大家供大家參考,具體如下:
今天使用wxptyhon的Textctrl控件開發(fā)客戶端時遇到了一個問題, 按照HTML表單的邏輯, 我們在Textctrl里回車應該提交查詢, 但是wxpython的Textctrl很奇怪, 回車了居然是像Tab作用一樣跳轉到下一個控件.這樣的話,要完成查詢, 要么是鼠標點擊按鈕, 要么需要按兩次或者兩次以上.
Google了一下, 無答案, 但是得到了一些有用的資料:
TextCtrl支持的事件類型:
EVT_TEXT:文本因用戶的輸入或在程序中使用SetValue()而被改變,都要產生該事件。
EVT_TEXT_ENTER:當用戶在一個wx.TE_PROCESS_ENTER樣式的文本控件中按下了回車鍵時,產生該事件。
EVT_TEXT_URL:如果在Windows系統(tǒng)上,wx.TE_RICH或wx.TE_RICH2樣式被設置了,并且wx.TE_AUTO_URL樣式也被設置了,那么當在文本控件內的URL上發(fā)生了一個鼠標事件時,該事件被觸發(fā)。
EVT_TEXT_MAXLEN:如果使用SetMaxLength()指定了該控件的最大長度,那么當用戶試圖輸入更長的字符串時,該事件被觸發(fā)。
例如,這時給用戶顯示一個警告消息。
加上wxptyon Demos的例子, 終于悟出了解決方案:
1. 聲明實例時需要加上style屬性, 如:
wx.TextCtrl(self,style=wx.TE_PROCESS_ENTER)
2. 綁定TextCtrl的回車事件
一開始我使用了類似按鈕的綁定方式, 結果沒作用
正確的聲明方式應該是:
然后在Frame或者Panel里聲明相應的方法處理即可.
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結構與算法教程》、《Python Socket編程技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
基于numpy.random.randn()與rand()的區(qū)別詳解
下面小編就為大家分享一篇基于numpy.random.randn()與rand()的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04