0


0

wx.ScrolledWindowをwx.SplitterWindow内に配置するにはどうすればよいですか?

これがそれほど難しいとは思いませんでした。 私はこのようなものを手に入れようとしています:

X |バツ

両方のXが最終的に多くのテキストと「|」を含むScrolledWindowsである場合2つを分割する「スプリッタ」です。 ほとんどの視覚的な差分があなたに与えるようなものが欲しい。 ただし、これを機能させることはできません。 私の大きな問題は、私がいくつかの主張に違反していることです。 Pythonをまっすぐに実行すると、実際にはほぼ予想どおりに描画されますが、制約違反にもかかわらず適切なサイズの改良が行われます。 私のプロジェクトでは、pybliographerを使用していますが、これは制約違反で終了します。 私はこれを間違っていますか? もっと簡単な方法はありますか?

スクロールされたウィンドウを使用するために、http://zetcode.com/wxpython/widgets/#splitterwindow [splitterwindow]サンプルコードの簡単な変更を含めました。 最初にパネルをスクロールウィンドウ内に収め、それを使用してwxpython wikiの2番目の例のようにスクロールバーを設定します(http://wiki.wxpython.org/ScrolledWindows、申し訳ありませんが新しいユーザーは2つのハイパーリンクを作成できません)。

import wx

class Splitterwindow(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, size=(350, 300))
        quote = '''Whether you think that you can, or that you can't, you are usually right'''
        splitter = wx.SplitterWindow(self, -1)
        scroll1 = wx.ScrolledWindow(splitter,-1)
        panel1 = wx.Panel(scroll1, -1)
        wx.StaticText(panel1, -1, quote, (100, 100), style=wx.ALIGN_CENTRE)
        panel1.SetBackgroundColour(wx.LIGHT_GREY)
        panel1.SetAutoLayout(True)
        panel1.Layout()
        panel1.Fit()
        scroll_unit = 50
        width,height = panel1.GetSizeTuple()
        scroll1.SetScrollbars(scroll_unit,scroll_unit,width/scroll_unit,height/scroll_unit)
        scroll2 = wx.ScrolledWindow(splitter,-1)
        panel2 = wx.Panel(scroll2, -1)
        wx.StaticText(panel2, -1, quote, (100, 100), style=wx.ALIGN_CENTRE)
        panel2.SetBackgroundColour(wx.WHITE)
        panel2.SetAutoLayout(True)
        panel2.Layout()
        panel2.Fit()
        scroll_unit = 50
        width,height = panel2.GetSizeTuple()
        scroll2.SetScrollbars(scroll_unit,scroll_unit,width/scroll_unit,height/scroll_unit)
        splitter.SplitVertically(scroll1, scroll2)
        self.Centre()
        self.Show(True)

app = wx.App()
tmp = Splitterwindow(None, -1, 'splitterwindow.py')
app.MainLoop()

1 Answer


0


この例の何が問題になっていますか? 私にとっては、期待どおりに動作します。