此处实现的注册框异常处理仅加入了判空操作,并将录入的信息存储到xml文件的一个操作
class Reg(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,'reg',size=(300,200))
panel=wx.Panel(self,-1)
#注册界面控件分布
self.nameLable=wx.StaticText(panel,-1,"name:",pos=(20,20))
self.nameText=wx.TextCtrl(panel,-1,size=(175,-1),pos=(70,20))
self.classLable=wx.StaticText(panel,-1,"class:",pos=(20,60))
self.classText=wx.TextCtrl(panel,-1,size=(175,-1),pos=(70,60))
self.snLable=wx.StaticText(panel,-1,"sn:",pos=(20,100))
self.snText=wx.TextCtrl(panel,-1,size=(175,-1),pos=(70,100))
#确定注册
okey=wx.Button(panel,-1,u"确定",pos=(20,130))
self.Bind(wx.EVT_BUTTON,self.Change_win,okey)
#取消注册
cancel=wx.Button(panel,-1,u"取消",pos=(180,130))
self.Bind(wx.EVT_BUTTON,self.OnCloseMe,cancel)
def Change_win(self,event):
#获取文本框中值
nameValue=self.nameText.GetValue()
classValue=self.classText.GetValue()
snValue=self.snText.GetValue()
#判空检查
if len(nameValue)==0:
wx.MessageBox(u"name不能为空","Error")
self.nameText.SetBackgroundColour("pink")
self.nameText.SetFocus()#设置这个窗口的焦点,允许它接收键盘输入
self.nameText.Refresh()
return False
elif len(classValue)==0:
wx.MessageBox(u"class不能为空","Error")
self.classText.SetBackgroundColour("pink")
self.classText.SetFocus()
self.classText.Refresh()
return False
elif len(snValue)==0:
wx.MessageBox(u"sn不能为空","Error")
self.snText.SetBackgroundColour("pink")
self.snText.SetFocus()
self.snText.Refresh()
return False
else:
nameValue=nameValue.encode("utf8")
classValue=classValue.encode("utf8")
snValue=snValue.encode("utf8")
#将信息存储到xml文件中
Create_stu_xml(nameValue,classValue,snValue)
Exam_Choose().Show(True)
self.Destroy()
def Create_stu_xml(self,name,classValue,sn):
try:
f=open("student.xml","w")
try:
doc=minidom.Document()
infoNode=doc.createElement("info")
doc.appendChild(infoNode)
nameNode=doc.createElement("name")
infoNode.appendChild(nameNode)
nameTextNode = doc.createTextNode(name)
nameNode.appendChild(nameTextNode)
classNode=doc.createElement("class")
infoNode.appendChild(classNode)
classTextNode = doc.createTextNode(classValue)
classNode.appendChild(classTextNode)
snNode=doc.createElement("sn")
infoNode.appendChild(snNode)
snTextNode = doc.createTextNode(sn)
snNode.appendChild(snTextNode)
doc.writexml(f,'\n',' ',' ',"utf-8")
except:
trackback.print_exc()
finally:
f.close()
except Exception:
print "write failed"
def OnCloseMe(self,event):
self.Close(True)