2012-05-17 61 views
0

如何显示HtmlWindow的全部内容?我在可滚动面板中有一些HtmlWindows,我想在这些窗口中看到全文。我试图将比例设置为1,并将样式设置为wx.EXPAND,但这不起作用。
目前,它看起来像这样:
panel
但我想在窗口看到全文:wxpython HtmlWindow:显示完整内容?

some long text 
with multiple lines 
and another line 

示例代码:

import wx 
from wx import html 
from wx.lib.scrolledpanel import ScrolledPanel 


class MyFrame(wx.Frame): 
    def __init__(self, *args, **kwds): 
     wx.Frame.__init__(self, *args, **kwds) 
     self.notebook_1 = wx.Notebook(self, -1, style=0) 
     self.notebook_1_pane_1 = ScrolledPanel(self.notebook_1, -1) 

     sizer_1 = wx.BoxSizer(wx.HORIZONTAL) 
     sizer_2 = wx.BoxSizer(wx.VERTICAL) 

     for _ in xrange(10): 
      self.html = html.HtmlWindow(self.notebook_1_pane_1) 
      self.html.SetPage('some long text<br />with multiple lines<br />' \ 
           'and another line') 
      self.html.SetBorders(0) 
      self.sizer_3_staticbox = wx.StaticBox(self.notebook_1_pane_1, -1, 
                'a') 
      sizer_3 = wx.StaticBoxSizer(self.sizer_3_staticbox, wx.VERTICAL) 
      sizer_3.Add(self.html, 1, wx.EXPAND, 0) 
      sizer_2.Add(sizer_3, 0, wx.EXPAND, 0) 

     self.notebook_1_pane_1.SetSizer(sizer_2) 
     self.notebook_1.AddPage(self.notebook_1_pane_1, "tab1") 
     sizer_1.Add(self.notebook_1, 1, wx.EXPAND, 0) 
     self.SetSizer(sizer_1) 

     self.notebook_1_pane_1.SetScrollRate(20, 20) 


if __name__ == "__main__": 
    app = wx.PySimpleApp() 
    frame_1 = MyFrame(None, -1, size=(400, 300)) 
    app.SetTopWindow(frame_1) 
    frame_1.Show() 
    app.MainLoop() 

回答

-1

你需要给sizer_2也有1个或更多的比例。

sizer_2.Add(sizer_3, 1, wx.EXPAND, 0) 

这使得sizer_3元素也可以适当拉伸。否则,它只能朝一个方向延伸。除非您使用高分辨率显示器,否则我会减少您输入的HTMLWindows的数量。在这些低分辨率的宽屏幕上,将所有这些文字扩展出来以便在所有窗口中都可以看到。

+0

不,我不认为这会起作用。这些HtmlWindows只是例子。它们在真正的程序中都有不同的文本,窗口的数量也各不相同。如果我给他们所有相同的比例,其中一些会太大而且太小。顺便说一句,窗口的数量并不重要,因为它们在一个ScrolledPanel中。 – BrtH