2010-04-27 14 views
5

Ich habe eine (einzelne Zeile) TextCtrl. Der Benutzer gibt Daten in diese ein. Wenn sie Enter drücken, muss der Inhalt der Box extrahiert werden, damit sie verarbeitet werden können. Ich kann nicht herausfinden, wie man einsteigen kann, wenn man drückt.Get Text, wenn Enter in einem Textfeld in WxPython

Laut der Dokumentation, mit dem Stil wx.TE_PROCESS_ENTER auf meinem TextCtrl gesetzt, sollte es ein wx.EVT_COMMAND_TEXT_ENTER -Ereignis erzeugen, wenn in das Feld gedrückt wird, das ich dann fangen konnte. Wx.EVT_COMMAND_TEXT_ENTER scheint jedoch nicht zu existieren (ich bekomme "Modul hat kein Attribut EVT_COMMAND_TEXT_ENTER), also bin ich ein bisschen hängen geblieben. Googeln bekommt nur ein paar Treffer von Leuten, die sich beschweren wx.EVT_COMMAND_TEXT_ENTER funktioniert nicht, also schätze ich." brauchen eine andere Art und Weise tun.

Antwort

4

ich nie wx.EVT_COMMAND_TEXT_ENTER gesehen habe. ich wx.EVT_TEXT_ENTER obwohl verwendet haben ...

+0

Ah, ja, Dies ist das Ereignis, das generiert wird. Ich denke, das ist dann ein Unterschied zwischen wxPython und der C++ - Version. EVT_COMMAND_TEXT_ENTER wird hier erwähnt: http://docs.wxwidgets.org/stable/wx_wxtextctrl.html – Sam

0

Verwenden style = wx.TE_PROCESS_ENTER in TextCtrl und Bind mit 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) 
Verwandte Themen