0

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

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()
4

1 回答 1

-1

您还需要为 sizer_2 提供 1 或更大的比例。

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

这使得 sizer_3 元素也可以适当地拉伸。否则,它只会向一个方向延伸。除非您使用高分辨率显示器,否则我也会减少您放入的 HTMLWindows 的数量。在这些低分辨率的宽屏幕上,将其扩展为所有 Windows 中的所有文本都可见是很困难的。

于 2012-05-17T18:44:08.643 回答