ウィンドウを二分割する

ウィンドウを複数の領域に分割したい。まずは簡単な二つの場合を検討した。デモの中でちょうど二つに分割しているものを見つける。それは、SplitterWindow.pyである。

分割している境界線をマウスで移動させると、ログにメッセージを出力するようになっているが、そのあたりの機能は取り除いてシンプルなものにする。
さらに、縦ではなくて水平に分割するように改造した(改造と言っても、メソッドをSplitVerticallyからSplitHorizontallyに変えただけ(^^;)。

単純なので、簡単に動作した(写真の通り)。

以下は改造したソース(SplitterWindow2.py)

import  wx

class MySplitter(wx.SplitterWindow):
    def __init__(self, parent, ID):
        wx.SplitterWindow.__init__(self, parent, ID,
                                   style = wx.SP_LIVE_UPDATE
                                   )
def runTest(frame, nb, log):
    splitter = MySplitter(nb, -1)

    sty = wx.BORDER_SUNKEN  # determine boundary lines
    
    p1 = wx.Window(splitter, style=sty)
    p1.SetBackgroundColour("red")

    p2 = wx.Window(splitter, style=sty)
    p2.SetBackgroundColour("sky blue")

#    splitter.SetMinimumPaneSize(20)
#    splitter.SplitVertically(p1, p2, 0)
    splitter.SplitHorizontally(p1, p2, 0)

    return splitter

if __name__ == '__main__':
    import sys,os
    import run
    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])

wxPythonのクラスが持っているメソッドをまとめた本をそろそろ欲しくなってきた。満足なリファレンスがない今のままではいずれ行き詰ってしまいそうだ。
wxPythonに付属のリファレンスを見ても、分かったような分からないような...。
↓これ、いいかな?でも高いんだよな。

wxPython in Action

wxPython in Action