Hello!
A help please.
In the example below because creating controls is much faster than the frame on the page of the book?
thank you
( python 2.7 and wx.python 2.8 )
import wx
import wx.lib.scrolledpanel as scrolled
import wx.lib.agw.flatnotebook as fnb
import wx.lib.agw.aui as aui
class TestFrame(wx.Frame):
def init( self ):
wx.Frame.init(self, None, -1, “Test Frame”, size=(640,480))
self.paneldados = wx.Panel( self )
sizer = wx.BoxSizer(wx.VERTICAL)
self.primarybook = fnb.FlatNotebook( self.paneldados , wx.ID_ANY )
self.primarybook.SetAGWWindowStyleFlag( fnb.FNB_VC8|fnb.FNB_NO_NAV_BUTTONS )
self.primarybook.AddPage( self.createpanel( self.primarybook ) , “first book” )
sizer.Add( self.primarybook , 1, wx.EXPAND )
self.paneldados.SetSizer( sizer )
self.Maximize(True)
def createpanel( self , primarybook ):
self.secondBook = aui.AuiNotebook( primarybook , agwStyle=wx.DOUBLE_BORDER )
panel = wx.Panel( self.secondBook )
sizer = wx.BoxSizer( wx.VERTICAL )
a = wx.Button( panel, -1, “second pag with Widgets”, ( 200, 30 ))
self.Bind( wx.EVT_BUTTON, self.pagewithwidgets, a )
sizer.Add( a )
b = wx.Button( panel, -1, “frame with Widgets”, ( 200, 30 ))
self.Bind( wx.EVT_BUTTON, self.framewithwidgets, b )
sizer.Add( b )
panel.SetSizer( sizer )
self.secondBook.AddPage( panel , “first page - second book” )
return self.secondBook
def pagewithwidgets( self , event ):
panel = scrolled.ScrolledPanel( self.secondBook , -1 , style=wx.SUNKEN_BORDER )
sizer = wx.BoxSizer( wx.VERTICAL )
lbox = wx.StaticBox( panel, -1, ‘’ )
lsizer = wx.StaticBoxSizer( lbox, wx.HORIZONTAL )
lsizer.Add( self.createwidgets( panel ) , 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 10 )
sizer.Add( lsizer ,0, wx.ALL | wx.ALIGN_CENTER, 5 )
panel.SetSizer( sizer )
panel.SetupScrolling()
self.secondBook.AddPage( panel , “second page - second book” )
self.secondBook.SetSelection(1)
def framewithwidgets( self , event ):
frm = wx.Frame(None, -1, “Teste”, size=(640,480) )
panel = scrolled.ScrolledPanel( frm , -1 , style=wx.SUNKEN_BORDER )
sizer = wx.BoxSizer( wx.VERTICAL )
lbox = wx.StaticBox( panel, -1, ‘’ )
lsizer = wx.StaticBoxSizer( lbox, wx.HORIZONTAL )
lsizer.Add( self.createwidgets( panel ) , 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 10 )
sizer.Add( lsizer ,0, wx.ALL | wx.ALIGN_CENTER, 5 )
panel.SetSizer( sizer )
panel.SetupScrolling()
frm.Show()
def createwidgets( self , oParent ):
lsizer = wx.BoxSizer( wx.VERTICAL )
for item in range( 0 ,70):
lbl = wx.StaticText( oParent, -1, “Test” )
lsizer.Add( lbl )
textedit = wx.TextCtrl( oParent, -1, “” , size=( 200, 22 ) )
lsizer.Add( textedit )
return lsizer
if name == ‘main’:
import sys,os
app = wx.PySimpleApp()
frame = TestFrame()
frame.Show(True)
app.MainLoop()