У меня есть TextCtrl со стилем = wx.TE_CENTRE, и я хочу/ожидаю, что его содержимое останется в центре при изменении размера TextCtrl. Однако текст остается слева от TextCtrl.
import wx
class MyApp(wx.App):
def OnInit(self):
frame = wx.Frame(None)
frame.Show(True)
self.SetTopWindow(frame)
self.myText = wx.TextCtrl(frame, value="A", style=wx.TE_CENTRE)
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(self.myText, wx.EXPAND)
frame.SetSizer(sizer)
sizer.Fit(frame)
self.Bind(wx.EVT_SIZE, self.OnSize)
return True
def OnSize(self, evt):
self.myText.SetValue("after resize")
myApp = MyApp(0)
myApp.MainLoop()
После долгих проб и ошибок я заработал, выполнив оба из следующих действий:
- Обновите TextCtrl в моем обработчике wx.EVT_SIZE
- Добавьте стиль wx.TE_RICH в TextCtrl.
Почему они оба необходимы? Я хотел бы понять, что я делаю неправильно здесь. (Я использую wxPython 4.0.4 на Win7.)