【问题标题】:wxpython textctrl autosize to fit textwxpython textctrl 自动调整大小以适应文本
【发布时间】:2016-07-06 20:29:55
【问题描述】:

很简单的问题:

我有一个 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 的值并重新安装。这样做让我可以删除相当多的“强制”尺寸,让尺寸测量器完成他们的工作。它的时髦必须适合两次,但在我的 30 多种位图、文本控件、列表框、组合框组合的测试台上看起来很完美。将来可能会帮助某人。但我一定会看看expando!谢谢罗宾!

标签: wxpython wxtextctrl


【解决方案1】:

估计多行 textctrls 的高度可能是一个棘手的问题,因为行之间的像素数量未知,文本正文上方和下方需要一些未知数量的空间等。除此之外,这些值可以因平台而异,甚至在同一平台的不同版本之间也有所不同。

查看演示中的wx.lib.expando 模块和相关示例。它试图处理上面提到的问题,而且通常做得很好。

【讨论】:

    猜你喜欢
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2011-05-23
    • 2012-02-06
    • 2017-03-23
    • 1970-01-01
    相关资源
    最近更新 更多