У меня есть несколько виджетов в форме, например, так:wxSlider обновления wxTextCtrl и Visa Versa
self.sl_qZone1 = wx.Slider(self, -1, 50, integer=True, 0, 100, size=(sliderWidthHeight), style=wx.SL_HORIZONTAL)
self.tc_qZone1 = wx.TextCtrl(panel, -1, 50, (0,0), style=wx.TE_CENTER)
Я некоторые события связаны, как так дюжины ползунков/текстовые элементы управления:
wx.FindWindowByName(mvName['sl0']).Bind(wx.EVT_SLIDER, lambda event: self.sliderUpdate(event, wx.FindWindowByName(mvName['sl0']), wx.FindWindowByName(mvName['tc0']),), wx.FindWindowByName(mvName['sl0']))
wx.FindWindowByName(mvName['tc0']).Bind(wx.EVT_CHAR, lambda event: self.tcVolUpdate(event, wx.FindWindowByName(mvName['sl0']), wx.FindWindowByName(mvName['tc0']),), wx.FindWindowByName(mvName['tc0']))
И тогда у меня есть следующие функции:
def sliderUpdate(self, event, slider, textctrl):
textctrl.SetValue(str(slider.GetValue()))
def tcVolUpdate(self, event, slider, textctrl):
slider.SetValue(int(textctrl.GetValue()))
Он отлично работает, когда я изменяю ползунок - он обновляет textctrl с помощью соответствующее значение. Но когда я пытаюсь редактировать textctrl, он позволяет мне выбирать текст, но не редактировать его. Я пробовал wx.EVT_TEXT_ENTER
, а также не повезло.
Как обновить текст ctrl и обновить значение ползунка?