wxpython HtmlWindow:显示完整内容?

时间:2012-05-17 18:17:16

标签: python wxpython wxhtmlwindow

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

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 个答案:

答案 0 :(得分:-1)

你需要给sizer_2一个或多个比例。

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

这使得sizer_3元素也适当地伸展。否则,它只向一个方向伸展。除非你使用高分辨率显示器,否则我会减少你放入的HTMLWindows的数量。在这些低分辨率的宽屏幕上,扩展这一点以便在所有Windows中都可以看到所有文本。