私は wxPython の初心者なので、見落としている基本的なことが何もないことを願っています。SplitterWindow を使用して、フレームのコンテンツを 2 つのサイズ変更可能なサブウィンドウ (A と B) に分割したいのですが、ウィンドウの 1 つ (B) が必要です。 MaxSize を設定します。
残念ながら、これには問題があります。
フレーム全体のサイズを変更 (拡大) すると (ここでは wxPython の用語に合わせようとしています。通常は、ウィンドウのサイズを変更します)、ウィンドウ B の maxSize に達したら、ウィンドウ Aフレームのコンテンツ全体を埋めるために自動的に拡大されます。悲しいことに、そうではありません。
サッシを左に移動できない (ウィンドウ B のサイズを小さくする) ことを確認するにはどうすればよいですか? 現在の状況では、ウィンドウ B は左に移動するだけで (幅は変更されません)、WindowSplitter の青色の背景が表示されます。
これが私のコードです:
import wx
class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(500,300))
# Create View
self.loadView()
#self.SetAutoLayout(1)
self.GetSizer().Fit(self)
self.Centre()
self.Show()
def loadView(self):
splitter = wx.SplitterWindow(self, wx.ID_ANY, style = wx.SP_BORDER, size=(500, 300))
splitter.SetBackgroundColour('#0000ff')
panelLeft = wx.Panel(splitter, size=(200,100))
panelLeft.SetBackgroundColour('#00ff00')
panelRight = wx.Panel(splitter, size=(200,100))
panelRight.SetBackgroundColour('#ff0000')
panelRight.SetMaxSize((200, -1))
splitter.SplitVertically(panelLeft, panelRight)
self.SetSizer(wx.BoxSizer(wx.HORIZONTAL))
self.GetSizer().Add(splitter, 1, wx.EXPAND)
app = wx.App(False)
frame = MainWindow(None, "Test")
app.MainLoop()
百聞は一見に如かず:
青色の領域はスプリッターの一部ですが、ウィンドウ A によって埋められていません。
正しい方向へのヘルプ/ヒントをいただければ幸いです。
ありがとう、ダニエル