0

HtmlWindow の全コンテンツを表示するにはどうすればよいですか? スクロール可能なパネルにいくつかの HtmlWindows があり、これらのウィンドウに全文を表示したいと考えています。プロポーションを 1 に、スタイルを wx.EXPAND に設定しようとしましたが、うまくいきません。
現在、次のようになっています。
パネル
しかし、ウィンドウに全文を表示したい:

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 の数を減らすこともできます。すべてのウィンドウですべてのテキストが表示されるようにこれを拡張することは、これらの低解像度のワイド画面では困難です。

于 2012-05-17T18:44:08.643 に答える