2010-04-27 45 views
5

J'ai une (seule ligne) TextCtrl. L'utilisateur tape des données dans ceci. Lorsqu'ils appuient sur Entrée, le contenu de la boîte doit être extrait afin qu'ils puissent être traités. Je ne peux pas comprendre comment attraper entrer être pressé. D'après les docs, avec le style wx.TE_PROCESS_ENTER défini sur ma TextCtrl, il devrait générer un événement wx.EVT_COMMAND_TEXT_ENTER quand on appuie sur entrée dans la boîte, que je pourrais alors attraper. Cependant, wx.EVT_COMMAND_TEXT_ENTER semble ne pas exister (je reçois le "module n'a pas d'attribut EVT_COMMAND_TEXT_ENTER), donc je suis un peu coincé. Google obtient juste quelques hits de personnes qui se plaignent wx.EVT_COMMAND_TEXT_ENTER ne fonctionne pas, donc je suppose que je besoin d'une autre façon de le faire.Obtenir du texte lorsque l'entrée est enfoncée dans une zone de texte dans wxPython

Répondre

4

Je ne l'ai jamais vu wx.EVT_COMMAND_TEXT_ENTER. Je l'ai utilisé wx.EVT_TEXT_ENTER bien ...

+0

Ah, oui, C'est l'événement généré. Je suppose que c'est une différence entre wxPython et la version C++, alors. EVT_COMMAND_TEXT_ENTER est mentionné ici: http://docs.wxwidgets.org/stable/wx_wxtextctrl.html – Sam

0

utilisation style = wx.TE_PROCESS_ENTER dans TextCtrl et se lier avec Event wx.EVT_TEXT_ENTER

self.Text_Enter = wx.TextCtrl(self , 2 ,style = wx.TE_PROCESS_ENTER, size =(125,150), pos = (170,0)) 

self.Text_Enter.SetForegroundColour(wx.RED) 

self.Bind(wx.EVT_TEXT_ENTER, self.Txt_Ent, id = 2) 
def Txt_Ent(self,event): 
    msg1 = (str(self.Text_Enter.GetValue())) 
    wx.MessageBox(msg1)