很简单的问题:
我有一个 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 中也有一个列表框和位图,但这是我能想到的最基本的例子。
它必须是一些简单的东西。关于如何得到我想要的任何想法?
谢谢