import wx class MyWindow(wx.Frame): def __init__(self): super().__init__(None, title = "ActivTxtCtrl") self.panel = wx.Panel(self, wx.ID_ANY) CrntEnt = None sizer1 = wx.BoxSizer(wx.VERTICAL) e1 = wx.TextCtrl(self.panel) e1.Bind(wx.EVT_SET_FOCUS, self.OnFocus) e2 = wx.TextCtrl(self.panel) e2.Bind(wx.EVT_SET_FOCUS, self.OnFocus) e3 = wx/textctrl(self.panel) e3.Bind(wx.EVT_SET_FOCUS, self.OnFocus) btn = wx.Button(self.panel, label = "push") btn.Bind(wx.EVT_BUTTON, self.OnClick) sizer1.Add(e1) sizer1.Add(e2) sizer1.Add(e3) sizer1.Add(btn) def OnFocus(self): global CrntEnt CrntEnt = wx.Window.FindFocus() def OnClick(self): global CrntEnt if CrntEnt == e1: e1.ChangeValue("hello!") elif CrntEnt == e2: e2.ChangeValue("by-by!") elif CrntEnt == e3: e3.Changevalue("ho-ho!") self.panel.SetSizer(sizer1) self.Layout() self.Show() if __name__ == "__main__": app = wx.App() wndw = MyWindow() app.MainLoop()
Задача определить активный текстовый контрол. Заранее мы его не знаем – это выбор пользователя. В Tkinter это решается легко. Я попытался в WX сделать это по примеру Тк, но не выходит.
Буду очень благодарен за любую помощь.