Attachment 'DUAL_CONTROL_CLASS_1.PY'
Download#!/usr/bin/python
# DUAL_CONTROL_CLASS_1.PY
import wx
import AddLinearSpacer as als
#------------------------------------------------------------------------------
class TxtCtrlPanel( wx.Panel ) :
""" A 2-control class with a sizer """
def __init__( self, parent, caption_txt ) :
wx.Panel.__init__( self, parent=parent, id=-1 )
#-----
self.caption_stTxt = wx.StaticText( self, -1, caption_txt )
self.caption_stTxt.BackgroundColour = ( 'wHIte' )
self.list_txtCtrl = wx.TextCtrl( self, -1, style=wx.TE_MULTILINE, size=(200, 150) )
#-----
panel_vertSizer = wx.BoxSizer( wx.VERTICAL )
panel_vertSizer.Add( self.caption_stTxt, proportion=0, flag=wx.CENTER )
als.AddLinearSpacer( panel_vertSizer, 2 )
panel_vertSizer.Add( self.list_txtCtrl, proportion=0, flag=wx.ALIGN_CENTER )
self.SetSizer( panel_vertSizer ) # Invoke the sizer.
self.Fit() # Make "self" (the panel) shrink to the minimum size required by the controls.
#end __init__
#------------------------
def GetControls( self ) :
return self.caption_stTxt, self.list_txtCtrl
#end TxtCtrlPanel class
#------------------------------------------------------------------------------
class MainFrame( wx.Frame ) :
""" A 2-control class with a BoxSizer demo """
def __init__( self ) :
#----- Configure the Frame.
wx.Frame.__init__ ( self, parent=None, title='DUAL_CONTROL_CLASS_1.PY',
size=(400, 300), style=wx.DEFAULT_FRAME_STYLE )
self.Position = (100, 0)
# A panel is needed for tab-traversal and platform background color capabilities.
# The first control instantiated in a Frame automatically expands
# to the Frame's client size. This is unique to Frames.
frm_pnl = wx.Panel( self )
frm_pnl.BackgroundColour = (250, 250, 150) # yellow
#----- Create the controls
txtCtl_panel_1 = TxtCtrlPanel( frm_pnl, 'My TextCtrl Caption #1' )
stTxt_1, txtCtl_1 = txtCtl_panel_1.GetControls()
#----- Create the sizer and add the controls to it.
allCtrls_vertSizer = wx.BoxSizer( wx.HORIZONTAL )
#----- Invoke the sizer via its container.
frm_pnl.SetSizer( allCtrls_vertSizer )
frm_pnl.Layout() # self.Fit() # always use one or the other
#end __init__
#end MainFrame class
#==============================================================================
if __name__ == '__main__' :
app = wx.PySimpleApp( redirect=False )
appFrame = MainFrame().Show()
app.MainLoop()
#end if
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.
