我对 wxPython 很陌生,所以我希望没有什么基本的东西可以忽略:我想使用 SplitterWindow 将 Frame 的内容拆分为两个可调整大小的子窗口(A 和 B),但我想要一个窗口(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 填满。
任何正确方向的帮助/提示表示赞赏。
谢谢,丹尼尔