Я новичок в wxPython, поэтому я надеюсь, что нет ничего основного, что я упускаю из виду: я хочу использовать SplitterWindow, чтобы разделить содержимое моего фрейма на два подокна с изменяемым размером (A и B), но я хочу одно из окон (B) иметь набор MaxSize.
К сожалению, это создает проблему:
Когда я изменяю размер (увеличиваю) весь кадр (здесь я пытаюсь адаптироваться к терминологии wxPython; обычно я бы сказал: изменить размер окна), я надеюсь, что как только будет достигнут maxSize окна B, окно 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()
Картинка говорит за тысячу слов: Синяя область является частью разделителя, но не заполнена по окну А.
Любая помощь/подсказка в правильном направлении приветствуется.
Спасибо, Даниэль