问题描述
我正在使用 wxPython 构建一个简单的应用程序,我想使用这样的布局
________
| | |
| |___|
| | |
| | |
---------
这是我的示例代码
class MainWindow(wx.Frame):
def __init__(self,title):
super().__init__(parent=None,title=title)
self.Maximize()
self.initUI()
def initUI(self):
self.leftSplitter = wx.SplitterWindow(self,style=wx.SP_LIVE_UPDATE)
self.leftSplitter.SetSashInvisible(False) # not working
self.rightSplitter = wx.SplitterWindow(self.leftSplitter,style=wx.SP_LIVE_UPDATE)
self.rightSplitter.SetSashInvisible(False) # not working
self.leftPanel = wx.Panel(self.leftSplitter)
self.rightPanel = wx.Panel(self.rightSplitter)
self.bottomPanel = wx.Panel(self.rightSplitter)
self.leftSizer = wx.GridSizer(10,4,3,3)
self.rightSizer = wx.BoxSizer(wx.HORIZONTAL)
self.bottomSizer = wx.BoxSizer(wx.HORIZONTAL)
rightBtn = wx.Button(self.rightPanel,label="I'm on the right")
leftBtn = wx.Button(self.leftPanel,label="I'm on the left")
bottomBtn = wx.Button(self.bottomPanel,label="I'm on the bottom")
self.leftSizer.Add(leftBtn)
self.rightSizer.Add(rightBtn)
self.bottomSizer.Add(bottomBtn)
self.leftPanel.SetSizer(self.leftSizer)
self.rightPanel.SetSizer(self.rightSizer)
self.bottomPanel.SetSizer(self.bottomSizer)
self.rightSplitter.SplitHorizontally(self.rightPanel,self.bottomPanel)
self.rightSplitter.SetSashGravity(0.5)
self.leftSplitter.SplitVertically(self.leftPanel,self.rightSplitter)
self.leftSplitter.SetSashGravity(0.5)
app = wx.App()
frame = MainWindow("My Window")
frame.Show()
app.MainLoop()
当我运行它时,一切都按预期工作,除了窗扇(也称为分隔符)默认不显示。 确实如果我跑
self.leftSplitter.IsSashVisible()
我猜错了。如何设置窗扇默认可见?如果使用 SetSashInvisible() 使其不可见,我如何将其重新设置为可见?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)