使用frame方式实现的简单注册框

来源:互联网 发布:走心机用什么软件编程 编辑:程序博客网 时间:2024/05/21 17:18

   此处实现的注册框异常处理仅加入了判空操作,并将录入的信息存储到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)