List Info

Thread: RE: 2 panels in a NotebookPage




RE: 2 panels in a NotebookPage
country flaguser name
United States
2007-10-24 10:48:23
 

> -----Original Message-----
> From: Matthieu Brucher [mailto:matthieu.bruchergmail.com] 
> Sent: Wednesday, October 24, 2007 9:54 AM
> To: wxPython-userslists.wxwidgets.org
> Subject: Re: [wxPython-users] 2 panels in a
NotebookPage
> 
> Thank you, this seems to work on Linux, I have to check
if it 
> works with Windows this evening. *I tried something
like this 
> before, but it was obviously not correct.
> In fact, the only change is that you use the panel on
the 
> whole notebook page. This should work without it,
shouldn't 
> it ? Or is the NotebookPage the whole page with the tab
? 


Maybe I'm mis-understanding, but for each page in a
notebook, you
typically use a separate panel object. Something like this:

notebook = wx.Notebook(panel, -1, size=(750, 580))
page1 = wx.Panel(notebook)
page2 = wx.Panel(notebook)

notebook.AddPage(page1, 'Title')
notebook.AddPage(page2, 'Title')

However, maybe this isn't the paradigm used for
wx.NotebookPage.
Admittedly, I've never used this specific version of the
notebook control.

Mike


> 
> Matthieu
> 
> 
> 2007/10/24, Rickey, Kyle W <Kyle.Rickeybakerhughes.com>:
> 
> 	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.bruchergmail.com
]
> 	Sent: Wednesday, October 24, 2007 12:33 AM
> 	To: wxPython-userslists.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.Rickeybakerhughes.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.bruchergmail.com]
> 	Sent: Tuesday, October 23, 2007 4:18 PM
> 	To: wxPython-userslists.wxwidgets.org 
> <mailto:wxPython-userslists.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
> 	
> 	
>
------------------------------------------------------------
--------- 
> 	To unsubscribe, e-mail: 
> wxPython-users-unsubscribelists.wxwidgets.org
> 	For additional commands, e-mail: 
> wxPython-users-helplists.wxwidgets.org 
> <mailto:wxPython-users-helplists.wxwidgets.org> 
> 	
> 	
> 
> 
> 


------------------------------------------------------------
---------
To unsubscribe, e-mail: wxPython-users-unsubscribelists.wxwidgets.org
For additional commands, e-mail: wxPython-users-helplists.wxwidgets.org


Re: 2 panels in a NotebookPage
user name
2007-10-24 11:03:36
Maybe I'm mis-understanding, but for each page in a notebook, you
typically use a separate panel object. Something like this:

notebook = wx.Notebook(panel, -1, size=(750, 580))
page1 = wx.Panel(notebook)
page2 = wx.Panel(notebook)

notebook.AddPage(page1, 'Title')
notebook.AddPage(page2, 'Title')

However, maybe this isn't the paradigm used for wx.NotebookPage.
Admittedly, I've never used this specific version of the notebook control.

I thought I had to use NotebookPages, so I derived from them, and then I need to add a panel on the NoteBookPage (which is derived from a Panel...).
Besides, I know that I may have to change the Notebook for context menu on the tabs to close the page for instance.

Matthieu
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )