本文實例講述了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的回車事件
一開始我使用了類似按鈕的綁定方式, 結果沒作用
正確的聲明方式應該是:
然後在Frame或Panel裡聲明對應的方法處理即可.
更多關於Python相關內容有興趣的讀者可查看本站專題:《Python資料結構與演算法教學》、《Python Socket程式設計技巧總結》、《Python函數使用技巧總結》、《Python字串操作技巧總結》 、《Python入門與進階經典教學》及《Python檔案與目錄操作技巧彙整》
希望本文所述對大家Python程式設計有所幫助。