def __init__(self, parent):
wx.Panel.__init__(self, parent, -1)
# ?????
self.response_text = wx.TextCtrl(self, -1, style=wx.TE_MULTILINE)
response_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Response"))
response_sizer.Add(self.response_text, 1, wx.EXPAND)
# ???????
self.doc_text = wx.TextCtrl(self, -1, style=wx.TE_MULTILINE | wx.TE_READONLY)
doc_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Document"))
doc_sizer.Add(self.doc_text, 1, wx.EXPAND)
main_box = wx.BoxSizer(wx.VERTICAL)
main_box.Add(response_sizer, 1, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 5)
main_box.Add(doc_sizer, 1, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 5)
self.SetSizer(main_box)
self.response_text.Bind(wx.EVT_CHAR, self.on_key_down)
self.doc_text.Bind(wx.EVT_CHAR, self.on_key_down)
python类RIGHT的实例源码
def __init__(self,parent,slidername,**kwargs):
wx.Panel.__init__(self,parent,**kwargs)
sliderlabel = wx.StaticText(self,-1,label=slidername+':',size=(50,-1))
self.slidertext = wx.TextCtrl(self,-1,style=wx.TE_PROCESS_ENTER,
size=(50,-1))
self.slider = JumpSlider(self)
#self.slider = wx.Slider(self)
spintext = wx.StaticText(self,-1,label=u"\u00B1",size=(10,-1))
self.spin = wx.SpinCtrl(self,value='0',initial=0,size=(50,-1))
hbox = wx.BoxSizer(wx.HORIZONTAL)
hbox.Add(sliderlabel,0,wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 10)
hbox.Add(self.slidertext,0,wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 10)
hbox.Add(self.slider,1,wx.EXPAND,0)
hbox.Add(spintext,0,wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 10)
hbox.Add(self.spin,0,wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(hbox,1,wx.EXPAND,0)
self.SetSizer(vbox)
self.SetValue(0)
def __init__(self, parent, info):
wx.Dialog.__init__(self, parent, title=_("License"), size=(500, 400),
style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
if parent and parent.GetIcon():
self.SetIcon(parent.GetIcon())
self.SetMinSize((400, 300))
close = wx.Button(self, id=wx.ID_CLOSE, label=_("&Close"))
ctrl = wx.TextCtrl(self, style=wx.TE_READONLY | wx.TE_MULTILINE)
ctrl.SetValue(info.License)
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
btnSizer.Add(close)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(ctrl, 1, wx.EXPAND | wx.ALL, 10)
sizer.Add(btnSizer, flag=wx.ALIGN_RIGHT | wx.RIGHT | wx.BOTTOM, border=10)
self.SetSizer(sizer)
self.Layout()
self.Show()
self.SetEscapeId(close.GetId())
close.Bind(wx.EVT_BUTTON, lambda evt: self.Destroy())
def __init__(self, parent, enable_required=True):
wx.Dialog.__init__(self, parent, title=_('Project properties'),
style=wx.DEFAULT_DIALOG_STYLE)
main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(0)
self.ProjectProperties = ProjectPropertiesPanel(
self,
enable_required=enable_required)
main_sizer.AddWindow(self.ProjectProperties, flag=wx.GROW)
self.ButtonSizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE)
self.Bind(wx.EVT_BUTTON, self.OnOK,
self.ButtonSizer.GetAffirmativeButton())
main_sizer.AddSizer(self.ButtonSizer, border=20,
flag=wx.ALIGN_RIGHT | wx.BOTTOM | wx.LEFT | wx.RIGHT)
self.SetSizer(main_sizer)
self.ProjectProperties.Fit()
self.Fit()
def __do_layout(self):
# begin wxGlade: MyFrame.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(5, 2, 0, 0)
grid_sizer_1.Add(self.label_1, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_1, 0, wx.TOP, 20)
grid_sizer_1.Add(self.label_2, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_2, 0, wx.TOP, 20)
grid_sizer_1.Add(self.label_3, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_3, 0, wx.RIGHT|wx.TOP, 20)
grid_sizer_1.Add(self.label_4, 0, wx.LEFT|wx.TOP|wx.BOTTOM|wx.EXPAND, 20)
grid_sizer_1.Add(self.combo_box_4, 0, wx.RIGHT|wx.TOP|wx.BOTTOM, 20)
grid_sizer_1.Add(self.button_1, 0, wx.TOP|wx.ALIGN_RIGHT, 0)
grid_sizer_1.Add(self.button_2, 0, wx.LEFT, 30)
sizer_1.Add(grid_sizer_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
# end wxGlade
def __do_layout(self):
# begin wxGlade: CE_TE.__do_layout
sizer_5 = wx.BoxSizer(wx.VERTICAL)
sizer_8 = wx.BoxSizer(wx.HORIZONTAL)
sizer_7 = wx.BoxSizer(wx.HORIZONTAL)
sizer_6 = wx.BoxSizer(wx.HORIZONTAL)
sizer_6.Add(self.label_1, 0, wx.LEFT, 0)
sizer_6.Add(self.text_ctrl_1, 0, wx.LEFT|wx.ALIGN_RIGHT, 35)
sizer_5.Add(sizer_6, 1, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 30)
sizer_7.Add(self.label_2, 0, wx.LEFT, 0)
sizer_7.Add(self.text_ctrl_2, 0, wx.LEFT, 35)
sizer_5.Add(sizer_7, 1, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 30)
sizer_8.Add(self.button_2, 0, 0, 0)
sizer_8.Add(self.button_1, 0, wx.LEFT, 35)
sizer_5.Add(sizer_8, 1, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 20)
self.SetSizer(sizer_5)
self.text_ctrl_1.SetFocus()
self.Layout()
# end wxGlade
def __do_layout(self):
# begin wxGlade: working_days.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(4, 2, 10, 10)
grid_sizer_1.Add(self.label_1, 0, wx.LEFT, 20)
grid_sizer_1.Add(self.combo_box_1, 0, wx.RIGHT, 20)
grid_sizer_1.Add(self.label_5, 0, wx.LEFT, 74)
grid_sizer_1.Add((0, 0), 0, 0, 0)
grid_sizer_1.Add(self.label_2, 0, wx.LEFT | wx.TOP, 7)
grid_sizer_1.Add(self.text_ctrl_1, 0, 0, 0)
grid_sizer_1.Add(self.label_3, 0, wx.LEFT | wx.TOP, 7)
grid_sizer_1.Add(self.text_ctrl_2, 0, 0, 0)
grid_sizer_1.Add(self.label_4, 0, wx.LEFT | wx.TOP, 10)
grid_sizer_1.Add(self.text_ctrl_3, 0, 0, 0)
grid_sizer_1.Add(self.button_1, 0, wx.LEFT, 60)
grid_sizer_1.Add(self.button_2, 0, wx.LEFT, 10)
sizer_1.Add(grid_sizer_1, 1, wx.ALL | wx.EXPAND, 5)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
# end wxGlade
def __do_layout(self):
# begin wxGlade: disclaimer_win.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
sizer_3 = wx.BoxSizer(wx.VERTICAL)
sizer_6 = wx.BoxSizer(wx.VERTICAL)
sizer_4 = wx.BoxSizer(wx.HORIZONTAL)
sizer_6_copy = wx.BoxSizer(wx.HORIZONTAL)
sizer_5 = wx.BoxSizer(wx.HORIZONTAL)
sizer_3.Add(self.label_1, 1, wx.TOP | wx.ALIGN_CENTER_HORIZONTAL, 10)
sizer_3.Add(self.text_ctrl_1, 5, wx.EXPAND, 0)
sizer_5.Add(self.button_disagree, 0, wx.RIGHT, 20)
sizer_4.Add(sizer_5, 1, wx.ALIGN_CENTER_HORIZONTAL, 0)
sizer_6_copy.Add(self.button_agree, 0, wx.LEFT, 20)
sizer_4.Add(sizer_6_copy, 1, 0, 0)
sizer_6.Add(sizer_4, 1, wx.EXPAND, 0)
sizer_3.Add(sizer_6, 1, wx.ALIGN_CENTER_HORIZONTAL, 0)
sizer_2.Add(sizer_3, 1, wx.EXPAND, 0)
sizer_1.Add(sizer_2, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
# end wxGlade
def __do_layout(self):
# begin wxGlade: sms_dialoge.__do_layout
sizer_7 = wx.BoxSizer(wx.HORIZONTAL)
sizer_29 = wx.BoxSizer(wx.HORIZONTAL)
sizer_30 = wx.BoxSizer(wx.VERTICAL)
sizer_31 = wx.BoxSizer(wx.HORIZONTAL)
grid_sizer_1 = wx.GridSizer(3, 2, 40, 25)
grid_sizer_1.Add(self.label_7, 0, wx.ALIGN_CENTER_VERTICAL, 15)
grid_sizer_1.Add(self.combo_box_1, 0, 0, 0)
grid_sizer_1.Add(self.label_8, 0, wx.ALIGN_CENTER_VERTICAL, 0)
grid_sizer_1.Add(self.text_ctrl_1, 0, wx.ALIGN_CENTER_VERTICAL, 52)
grid_sizer_1.Add(self.button_1, 0, wx.RIGHT | wx.ALIGN_CENTER_HORIZONTAL, 30)
grid_sizer_1.Add(self.button_2, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
sizer_31.Add(grid_sizer_1, 1, 0, 0)
sizer_30.Add(sizer_31, 1, wx.ALIGN_CENTER_HORIZONTAL, 0)
sizer_29.Add(sizer_30, 1, wx.ALIGN_CENTER_VERTICAL, 0)
self.panel_5.SetSizer(sizer_29)
sizer_7.Add(self.panel_5, 1, wx.EXPAND, 0)
self.SetSizer(sizer_7)
self.Layout()
self.Maximize(True)
#self.ShowFullScreen(True)
# end wxGlade
def __do_layout(self):
# begin wxGlade: MyFrame.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(5, 2, 0, 0)
grid_sizer_1.Add(self.label_1, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_1, 0, wx.TOP, 20)
grid_sizer_1.Add(self.label_2, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_2, 0, wx.TOP, 20)
#grid_sizer_1.Add(self.button_3, 0, wx.LEFT|wx.TOP|wx.BOTTOM|wx.EXPAND, 20)
#grid_sizer_1.Add(self.combo_box_4, 0, wx.RIGHT|wx.TOP|wx.BOTTOM, 20)
grid_sizer_1.Add(self.button_1, 0, wx.TOP|wx.ALIGN_RIGHT, 0)
grid_sizer_1.Add(self.button_2, 0, wx.LEFT, 30)
sizer_1.Add(grid_sizer_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
def __do_layout(self):
# begin wxGlade: MyFrame.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(5, 2, 0, 0)
grid_sizer_1.Add(self.label_1, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_1, 0, wx.TOP, 20)
grid_sizer_1.Add(self.label_2, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_2, 0, wx.TOP, 20)
grid_sizer_1.Add(self.label_3, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_3, 0, wx.RIGHT|wx.TOP, 20)
#grid_sizer_1.Add(self.button_3, 0, wx.LEFT|wx.TOP|wx.BOTTOM|wx.EXPAND, 20)
#grid_sizer_1.Add(self.combo_box_4, 0, wx.RIGHT|wx.TOP|wx.BOTTOM, 20)
grid_sizer_1.Add(self.button_1, 0, wx.TOP|wx.ALIGN_RIGHT, 0)
grid_sizer_1.Add(self.button_2, 0, wx.LEFT, 30)
sizer_1.Add(grid_sizer_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
def __do_layout(self):
# begin wxGlade: working_days.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(4, 2, 10, 10)
grid_sizer_1.Add(self.label_1, 0, wx.LEFT, 20)
grid_sizer_1.Add(self.combo_box_1, 0, wx.RIGHT, 20)
grid_sizer_1.Add(self.label_5, 0, wx.LEFT, 74)
grid_sizer_1.Add((0, 0), 0, 0, 0)
grid_sizer_1.Add(self.label_2, 0, wx.LEFT | wx.TOP, 7)
grid_sizer_1.Add(self.text_ctrl_1, 0, 0, 0)
grid_sizer_1.Add(self.label_3, 0, wx.LEFT | wx.TOP, 7)
grid_sizer_1.Add(self.text_ctrl_2, 0, 0, 0)
grid_sizer_1.Add(self.label_4, 0, wx.LEFT | wx.TOP, 10)
grid_sizer_1.Add(self.text_ctrl_3, 0, 0, 0)
grid_sizer_1.Add(self.button_1, 0, wx.LEFT, 60)
grid_sizer_1.Add(self.button_2, 0, wx.LEFT, 10)
sizer_1.Add(grid_sizer_1, 1, wx.ALL | wx.EXPAND, 5)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
# end wxGlade
def __do_layout(self):
# begin wxGlade: add_academic_year.__do_layout
sizer_1 = wx.BoxSizer(wx.HORIZONTAL)
sizer_2 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(2, 1, 10, 10)
sizer_4 = wx.BoxSizer(wx.VERTICAL)
sizer_5 = wx.BoxSizer(wx.HORIZONTAL)
sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
sizer_3.Add(self.label_3, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
sizer_3.Add(self.text_ctrl_1, 0, wx.ALIGN_CENTER_VERTICAL, 0)
sizer_3.Add(self.label_4, 0, wx.ALIGN_CENTER_VERTICAL, 0)
sizer_3.Add(self.text_ctrl_2, 0, wx.ALIGN_CENTER_VERTICAL, 0)
grid_sizer_1.Add(sizer_3, 1, wx.EXPAND, 0)
sizer_5.Add(self.button_close, 0, wx.RIGHT, 20)
sizer_5.Add(self.button_add, 0, wx.LEFT, 20)
sizer_4.Add(sizer_5, 1, wx.ALIGN_CENTER_VERTICAL, 10)
grid_sizer_1.Add(sizer_4, 1, wx.TOP | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 30)
sizer_2.Add(grid_sizer_1, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
sizer_1.Add(sizer_2, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
self.SetSizer(sizer_1)
self.Layout()
# end wxGlade
def __init__(self, controller_uid):
TopLevel.__init__(self, controller_uid)
UIM = UIManager()
controller = UIM.get(self._controller_uid)
wx.Dialog.__init__(self, None, wx.ID_ANY, controller.model.title,
pos=controller.model.pos, size=controller.model.size,
style=controller.model.style
)
self._objects = {}
if controller.model.icon:
self.icon = wx.Icon(controller.model.icon, wx.BITMAP_TYPE_ICO)
self.SetIcon(self.icon)
if controller.model.maximized:
self.Maximize()
self.Bind(wx.EVT_MAXIMIZE, self.on_maximize)
self.Bind(wx.EVT_SIZE, self.on_size)
self.Bind(wx.EVT_MOVE, self.on_move)
dialog_box = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(dialog_box)
self.mainpanel = self.AddCreateContainer('BoxSizer', self, proportion=1,
flag=wx.TOP|wx.LEFT|wx.RIGHT|wx.EXPAND, border=10
)
button_sizer = self.CreateButtonSizer(controller.model.flags)
dialog_box.Add(button_sizer, flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM, border=10)
dialog_box.Layout()
def __init__(self, parent, pos=(0, 0), size=(300, 200), style=0):
wx.Panel.__init__(self, parent, pos=pos, size=size, style=style)
box = wx.BoxSizer(wx.VERTICAL)
self._curzoom = (0.0, 1.0)
self.sndview = SndViewTablePanel(self, None)
box.Add(self.sndview, 1, wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, 5)
self.SetSizer(box)
def createHeading(self, panel, headingText):
hbox = wx.BoxSizer(wx.HORIZONTAL)
pathHeading = wx.StaticText(panel, label=headingText)
pathHeading.SetFont(self.fontHeading)
hbox.Add(pathHeading, flag=wx.RIGHT|wx.EXPAND, border=0)
return hbox
def createExplainerLine(self, panel, font, label_text):
hbox = wx.BoxSizer(wx.HORIZONTAL)
self.inputDescriptionLabel = wx.StaticText(panel, label=label_text)
self.inputDescriptionLabel.SetFont(font)
hbox.Add(self.inputDescriptionLabel, flag=wx.RIGHT|wx.EXPAND, border=8)
return hbox
def __init__(self, parent, name, number, minnamelen, maxnamelen):
wxskinDialog.__init__(self, parent, -1, "Phonebook edit entry")
self.SetAutoLayout(True)
self.name = None
self.number = None
nameTextId = wx.NewId()
# Main window resizer object
border = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(self, -1, "Enter the phonebook entry name, number and press OK.")
border.Add(label, 1, wx.ALL, 10)
#fgs = wx.FlexGridSizer(2,3,5,20)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Name (max %d): " % maxnamelen)
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.nameCtrl = wx.TextCtrl(self, nameTextId, name, validator = pySIMvalidator(None, minnamelen, maxnamelen))
fgs.Add(self.nameCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Number (max 20): ")
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.numberCtrl = wx.TextCtrl(self, -1, number, validator = pySIMvalidator("+*#pw0123456789", None, 20))
fgs.Add(self.numberCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add(wx.Button(self, ID_BUTTON_OK, "Okay"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
buttons.Add(wx.Button(self, wx.ID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
border.Add(buttons, 1, wx.ALL)
wx.EVT_BUTTON(self, ID_BUTTON_OK, self.onOK)
wx.EVT_TEXT_ENTER(self, nameTextId, self.onOK)
self.SetAutoLayout(1);
self.SetSizer(border)
border.Fit(self)
self.Layout()
def createWidgets(self):
sizer = wx.GridSizer(3,3,5,5)
self.SIM.gatherInfo()
sizer.Add(wx.Size(0,0), 10, 1, wx.LEFT, 10) # Spacer
sizer.Add(wxskinStaticText(self, -1, "Activated"), 1, wx.LEFT | wx.RIGHT, 10)
sizer.Add(wxskinStaticText(self, -1, "Tries left"), 1, wx.RIGHT, 10)
sizer.Add(wxskinStaticText(self, -1, "PIN1"), 1, wx.LEFT, 10)
if self.SIM.chv1_enabled:
sizer.Add(wx.TextCtrl(self, -1, "Yes", style=wx.TE_READONLY), 1, wx.RIGHT, 10)
else:
sizer.Add(wx.TextCtrl(self, -1, "No", style=wx.TE_READONLY), 1, wx.RIGHT, 10)
sizer.Add(wx.TextCtrl(self, -1, "%d" % self.SIM.chv1_tries_left, style=wx.TE_READONLY), 1, wx.RIGHT, 10)
sizer.Add(wxskinStaticText(self, -1, "PIN2"), 1, wx.LEFT, 10)
if self.SIM.chv2_enabled:
sizer.Add(wx.TextCtrl(self, -1, "Yes", style=wx.TE_READONLY), 1, wx.RIGHT, 10)
else:
sizer.Add(wx.TextCtrl(self, -1, "No", style=wx.TE_READONLY), 1, wx.RIGHT, 10)
sizer.Add(wx.TextCtrl(self, -1, "%d" % self.SIM.chv2_tries_left, style=wx.TE_READONLY), 1, wx.RIGHT, 10)
self.SetSizer(sizer)
self.SetAutoLayout(1)
sizer.Fit(self)
sizer.Layout()
def __init__(self, parent, name, number, minnamelen, maxnamelen):
wxskinDialog.__init__(self, parent, -1, "Phonebook edit entry")
self.SetAutoLayout(True)
self.name = None
self.number = None
nameTextId = wx.NewId()
# Main window resizer object
border = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(self, -1, "Enter the phonebook entry name, number and press OK.")
border.Add(label, 1, wx.ALL, 10)
#fgs = wx.FlexGridSizer(2,3,5,20)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Name (max %d): " % maxnamelen)
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.nameCtrl = wx.TextCtrl(self, nameTextId, name, validator = pySIMvalidator(None, minnamelen, maxnamelen))
fgs.Add(self.nameCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Number (max 20): ")
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.numberCtrl = wx.TextCtrl(self, -1, number, validator = pySIMvalidator("+*#pw0123456789", None, 20))
fgs.Add(self.numberCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add(wx.Button(self, ID_BUTTON_OK, "Okay"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
buttons.Add(wx.Button(self, wx.ID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
border.Add(buttons, 1, wx.ALL)
wx.EVT_BUTTON(self, ID_BUTTON_OK, self.onOK)
wx.EVT_TEXT_ENTER(self, nameTextId, self.onOK)
self.SetAutoLayout(1);
self.SetSizer(border)
border.Fit(self)
self.Layout()