Найти - Пользователи
Полная версия: Какое событие при потере фокуса текстовым контролом в wxPython?
Начало » GUI » Какое событие при потере фокуса текстовым контролом в wxPython?
1
reNeo
Собсно, есть класс пользовательского диалога (в отдельном файле), на котором раскиданы текстовые контролы { wx.TextCtrl( ) }. К каждому такому контролу я хочу привязать событие которые возникает при переходе курсора с одного контрола на другой, в этом событии я буду брать значение текстового контрола и сохранять его в переменной объекта диалога. Хочется узнать к какому событию привязываться? Вот примерный код:

class NewInvDialog(wx.Dialog):
def __init__( self, parent, ID, title, size=wx.DefaultSize,
pos=wx.DefaultPosition, style=wx.DEFAULT_DIALOG_STYLE,
useMetal=False, ):
self.data = {}

pre = wx.PreDialog()
pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
pre.Create(parent, ID, title, pos, size, style)

self.PostCreate(pre)
#———————————————————————–
panel = wx.Panel(self)
panel.SetFont( wx.Font(9, wx.MODERN, wx.NORMAL, wx.NORMAL) )

#=======================================================================

surnameLbl = wx.StaticText(panel, -1, “ Фамилия:”)
surname = wx.TextCtrl(panel, -1, “”, size=(-1, -1));
self.Bind( wx.EVT_KILL_FOCUS, self.OnSurname, surname )

#=======================================================================

saveBtn = wx.Button( panel, wx.ID_OK, “Сохранить” )
saveBtnNext = wx.Button( panel, wx.ID_APPLY, “Сохранить и\nдоб. нового” )
cancelBtn = wx.Button( panel, wx.ID_CANCEL, “Отмена” )

def OnSurname( self, evt ):
obj = evt.GetEventObject( )
self.data = obj.GetValue( )


P.S. Жаль, что в тега “code” используется не моноширинный шрифт, все выравнивание полетело… :-(
hellslade
событие верно выбрано, просто привязка не совсем точная..
замени строку
self.Bind( wx.EVT_KILL_FOCUS, self.OnSurname, surname )
на
surname.Bind( wx.EVT_KILL_FOCUS, self.OnSurname, surname )
должно заработать :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB