[wxPython-users] 2 panels in a NotebookPage
Rickey, Kyle W
Kyle.Rickey at bakerhughes.com
Wed Oct 24 06:47:07 PDT 2007
I guess I don't understand why you need 2 panels. Why not add everything to 1 panel and use multiple sizers to get the layout you want? I've modified your demo below. Perhaps you could post some sample code for the matplotlib and checkboxes scenario and we could look for the problem.
Kyle Rickey
#!/usr/bin/env python
import wx
class MyPage( wx.NotebookPage):
def __init__(self, parent):
wx.NotebookPage.__init__(self, parent, -1)
sizer = wx.BoxSizer(wx.VERTICAL)
self.panel = wx.Panel(self)
sizer.Add(self.createBoxes(), 0, 0)
sizer.Add(self.createBoxes (), 0, wx.TOP, 30)
self.panel.SetSizer(sizer)
self.panel.Fit()
def createBoxes(self):
"""
Create a set of checkboxes. Here a specific sizer is used
"""
sizer = wx.GridSizer(4, 7)
for x in range(0, 4):
for y in range(0, 7):
box = wx.CheckBox(self.panel, -1, '%d-%d' %(x, y))
sizer.Add(box)
return sizer
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1)
self.notebook = wx.Notebook(self)
self.notebook.AddPage(MyPage( self.notebook), "test")
class App(wx.App):
def OnInit(self):
'Create the main window and insert the custom frame'
frame = MainFrame()
frame.Show(True)
return True
app = App(0)
app.MainLoop()
-----Original Message-----
From: Matthieu Brucher [mailto:matthieu.brucher at gmail.com]
Sent: Wednesday, October 24, 2007 12:33 AM
To: wxPython-users at lists.wxwidgets.org
Subject: Re: [wxPython-users] 2 panels in a NotebookPage
No, in fact I want to have a group of checkboxes with a Matplotlib figure, but the same bug occurs, so for the sake of simplicity, I use twice the same panel.
2007/10/23, Rickey, Kyle W < Kyle.Rickey at bakerhughes.com>:
Are you trying to separate the checkboxes into groups? You can do so with a staticbox. Check out the demo, it's got a good example for staticboxes.
-----Original Message-----
From: Matthieu Brucher [mailto:matthieu.brucher at gmail.com]
Sent: Tuesday, October 23, 2007 4:18 PM
To: wxPython-users at lists.wxwidgets.org
Subject: [wxPython-users] 2 panels in a NotebookPage
Hi,
I'm trying to get two simple panels with somecheckboxes appear on a classic NotebookPage. The problem is that they do not display themselves correctly :
#!/usr/bin/env python
import wx
class MyPage( wx.NotebookPage):
def __init__(self, parent):
wx.NotebookPage.__init__(self, parent, -1)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.createBoxes(), 0, 0)
sizer.Add(self.createBoxes (), 0, 0)
self.SetSizer(sizer)
self.Fit()
def createBoxes(self):
"""
Create a set of checkboxes. Here a specific sizer is used
"""
panel = wx.Panel(self)
sizer = wx.GridSizer(4, 7)
for x in range(0, 4):
for y in range(0, 7):
box = wx.CheckBox(panel, -1, '%d-%d' %(x, y))
sizer.Add(box)
panel.SetSizer (sizer)
panel.Fit()
return panel
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1)
self.notebook = wx.Notebook(self)
self.notebook.AddPage(MyPage( self.notebook), "test")
class App(wx.App):
def OnInit(self):
'Create the main window and insert the custom frame'
frame = MainFrame()
frame.Show(True)
return True
app = App(0)
app.MainLoop()
With this sample, two panels are created with createBoxes(), but only one is displayed and usable.
Is there an obvious mistake in what I'm doing ?
Matthieu
More information about the wxpython-users
mailing list