【问题标题】:wxpython notebook inside boxsizerboxsizer 内的 wxpython 笔记本
【发布时间】:2013-07-28 07:52:16
【问题描述】:

这段代码有什么问题?我正在尝试将笔记本放在由 boxsizer 控制的面板上。我是 wxpython 的新手,无法弄清楚我做错了什么。当我运行它时,它只会在角落里弄得一团糟:(

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()

【问题讨论】:

    标签: python wxpython sizer wxnotebook boxsizer


    【解决方案1】:

    为左面板设置 sizer。请参阅下面的代码(尤其是 ### 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 2014-12-31
      • 1970-01-01
      相关资源
      最近更新 更多