boxsizer 内的 wxpython 笔记本 [英] wxpython notebook inside boxsizer
本文介绍了boxsizer 内的 wxpython 笔记本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这段代码有什么问题?我正在尝试将笔记本放在由 boxsizer 控制的面板上.我是 wxpython 的新手,无法弄清楚我做错了什么.当我运行它时,它只会在角落里弄得一团糟:(
What is wrong with this code? I am trying to place a notebook on a panel that is being controlled by a boxsizer. I am new to wxpython and can't figure out what I am doing wrong. When I run it it just makes a mess in the corner :(
import wx
class TestNoteBook(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(600, 500))
panel = wx.Panel(self)
hsizer = wx.BoxSizer(wx.HORIZONTAL)
leftpanel = wx.Panel(panel)
notebook = wx.Notebook(leftpanel)
posterpage = wx.Panel(notebook)
listpage = wx.Panel(notebook)
notebook.AddPage(posterpage, 'posters')
notebook.AddPage(listpage, 'list')
hsizer.Add(leftpanel, 1, wx.EXPAND)
rightpanel = wx.Panel(panel)
hsizer.Add(rightpanel, 1, wx.EXPAND)
panel.SetSizer(hsizer)
app = wx.App()
frame = TestNoteBook(None, -1, 'notebook')
frame.Show()
app.MainLoop()
推荐答案
为左面板设置 sizer.请参阅下面的代码(特别是 ### 之间的代码已添加代码(
... ### 已添加代码)
).
Set sizer for left panel. See code below (esp. codes between ### Added code (
... ### Added code)
).
import wx
class TestNoteBook(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(600, 500))
panel = wx.Panel(self)
hsizer = wx.BoxSizer(wx.HORIZONTAL)
leftpanel = wx.Panel(panel)
notebook = wx.Notebook(leftpanel)
posterpage = wx.Panel(notebook)
listpage = wx.Panel(notebook)
notebook.AddPage(posterpage, 'posters')
notebook.AddPage(listpage, 'list')
hsizer.Add(leftpanel, 1, wx.EXPAND)
rightpanel = wx.Panel(panel)
hsizer.Add(rightpanel, 1, wx.EXPAND)
##### Added code (
leftpanel_sizer = wx.BoxSizer(wx.HORIZONTAL)
leftpanel_sizer.Add(notebook, 1, wx.EXPAND)
leftpanel.SetSizer(leftpanel_sizer)
rightpanel.SetBackgroundColour('blue') # not needed, to distinguish rightpanel from leftpanel
##### Added code )
panel.SetSizer(hsizer)
app = wx.App()
frame = TestNoteBook(None, -1, 'notebook')
frame.Show()
app.MainLoop()
这篇关于boxsizer 内的 wxpython 笔记本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文