Очень простой вопрос:WxPython textctrl авторазмер, чтобы соответствовать тексту
Ive получил коробку WxPython textctrl, к которому я хочу, чтобы отобразить длинный текст. Текст может содержать символы новой строки. может нет.
Независимо от того, что я делаю, коробка всегда кажется немного коротким.
ив пошел по мере получения размера шрифта и пытаемся вычислить высоту, необходимую, и математика, кажется, работает, но коробка слишком коротка ... ширина хорошо и то, что я ожидал
образца кода здесь:
Message = 'really long text....just an example here............................................................................................................................'
self.MessageBoxText = wx.TextCtrl(self, wx.ID_ANY, Message, wx.DefaultPosition, wx.DefaultSize, wx.TE_RICH|wx.TE_MULTILINE|wx.TE_BESTWRAP)
self.MessageText.SetFont(wx.Font(18, 74, 90, 90, False, 'Arial'))
dc = wx.WindowDC(self.panel)
textWidthSingle, textHeightSingle = dc.GetTextExtent(self.MessageBoxText.GetValue())
textWidth, textHeight,other =
dc.GetMultiLineTextExtent(self.MessageText.GetValue(),self.MessageText.GetFont())
self.msgBoxWidth = 800 #pixels
rows = textWidth/self.msgBoxWidth
self.msgBoxHeight = (textHeightSingle * rows) + 20
self.MessageBoxText.SetMinSize((self.msgBoxWidth,self.msgBoxHeight))
self.msgSizer.Add(self.MessageBoxText, 1, wx.ALL|wx.EXPAND, 0)
self.topSizer.Add(self.msgSizer, 1, wx.ALL|wx.EXPAND , 10)
self.SetSizer(self.topSizer)
self.Fit()
self.Center()
Полоса прокрутки действительно позволяет мне видеть весь текст, но я надеялся, просто изменить размер textctrl, чтобы увидеть все без скроллинга и нужно только скроллбар, если ее слишком большой, чтобы соответствовать экран.
SetMinSize, похоже, не работает, потому что я могу запросить self.messageBoxText.GetSize(), и он заканчивается короче, чем я установил его с помощью SetMinSize.
Возможно, у меня также есть список и растровое изображение в topSizer, но это самый простой пример, о котором я могу думать.
Его должно быть чем-то простым. Любые идеи о том, как получить то, что я хочу?
благодаря
Я получил его, работая так, как я хочу, оставив значение textctrl пустым, добавив его в свой sizer, установив все, а затем установив значение textctrl и переустановку. Выполнение этого, как это, позволило мне удалить совсем немного «заставляя» размеры и просто позволяя sizers выполнять свою работу. Его фанки приходится вписываться дважды, но он отлично смотрелся над моим тестовым слоем из 30 + комбинаций растровых изображений, textctrls, listboxes, comboboxes. Может помочь кому-то в будущем. Но я определенно смотрю на expando! спасибо Робин! – pyNewbie