Как вы печатаете значение из wx.TextCtrl?

У меня сейчас есть что-то вроде этого:

import wx

class QuickAddBox(wx.TextCtrl):
    def __init__(self, parent, viewer):
        self.quick_add_text = wx.TextCtrl.__init__(self, parent, -1, '', size=(300,20), style=wx.TE_PROCESS_ENTER)
        self.Bind(wx.EVT_TEXT_ENTER, self.OnPress, self.quick_add_text)

    def OnPress(self, evt):
        print self.quick_add_text.GetValue()

И я хочу получить значение текстового поля, когда я нажимаю Enter. Но когда я нажимаю Enter, я получаю следующую ошибку:

AttributeError: 'NoneType' object has no attribute 'GetValue'

Любой совет?

__ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ -

Неважно я решил это, сделав следующее:

def OnPress(self, evt):
    print self.GetValue()

1 ответ

Похоже, вы храните возвращаемое значение TextCtrl __init__ (который None) вместо фактического экземпляра класса. Ваш __init__ скорее всего, должно выглядеть так:

class QuickAddBox(wx.TextCtrl):
    def __init__(self, parent, viewer):
        self.quick_add_text = wx.TextCtrl(self, parent, -1, '', size=(300,20), style=wx.TE_PROCESS_ENTER)
Другие вопросы по тегам