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