#-*- coding: gbk -*-importwx#-------------------------------------------------------------------------classLoginDialog(wx.Dialog):def__init__(self, parent, id, title,
size=(350,200),
pos=wx.DefaultPosition,
style=wx.DEFAULT_DIALOG_STYLE, useMetal=False):
pre=wx.PreDialog()
pre.Create(parent, id, title, pos, size, style)
self.PostCreate(pre)
self.user, self.password='',''self.CreateSizer()defdataEntries(self):return(('用户', 0, self.OnUser),('密码', wx.TE_PASSWORD, self.OnPassword))defdataButtons(self):return((wx.ID_OK,'确定'),(wx.ID_CANCEL,'取消'))defCreateSizer(self):
sizer=wx.BoxSizer(wx.VERTICAL)
sizer.Add(wx.StaticText(self,-1,'请输入用户名和密码'), 0, wx.ALIGN_CENTER|wx.ALL,5)foreachLabel, eachStyle, eachHandlerinself.dataEntries():
self.CreateEntry(sizer, eachLabel, eachStyle, eachHandler)
sizer.Add(wx.StaticLine(self,-1, size=(20,-1), style=wx.LI_HORIZONTAL),
0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP,5)
btnsizer=wx.StdDialogButtonSizer()foreachId, eachLabelinself.dataButtons():
self.CreateButton(btnsizer, eachId, eachLabel)
btnsizer.Realize()
sizer.Add(btnsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL,5)
self.SetSizer(sizer)
sizer.Fit(self)defCreateEntry(self, sizer, label, style, handler):
box=wx.BoxSizer(wx.HORIZONTAL)
box.Add(wx.StaticText(self,-1, label), 0, wx.ALIGN_CENTER|wx.ALL,5)
text=wx.TextCtrl(self,-1,"", size=(80,-1), style=style)
text.Bind(wx.EVT_TEXT, handler)
box.Add(text,1, wx.ALIGN_CENTER|wx.ALL,5)
sizer.Add(box, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL,5)defCreateButton(self, btnsizer, id, label):
button=wx.Button(self, id, label)ifid==wx.ID_OK:
button.SetDefault()
btnsizer.AddButton(button)defOnUser(self, event):
self.user=event.GetString()defOnPassword(self, event):
self.password=event.GetString()defGetValue(self):return(self.user, self.password)#-------------------------------------------------------------------------