Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import wx
- import sqlite3
- class LoginFrame(wx.Frame):
- def __init__(self, parent):
- wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,
- size=wx.Size(350, 200), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
- self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
- sbSizerLogin = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, u"登录"), wx.VERTICAL)
- usernamegSizer = wx.GridSizer(0, 2, 0, 0)
- self.m_staticTextusername = wx.StaticText(sbSizerLogin.GetStaticBox(), wx.ID_ANY, u"用户名", wx.DefaultPosition,
- wx.DefaultSize, 0)
- self.m_staticTextusername.Wrap(-1)
- usernamegSizer.Add(self.m_staticTextusername, 0, wx.ALL | wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
- self.m_textCtrlusername = wx.TextCtrl(sbSizerLogin.GetStaticBox(), wx.ID_ANY, wx.EmptyString,
- wx.DefaultPosition, wx.DefaultSize, 0)
- usernamegSizer.Add(self.m_textCtrlusername, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- sbSizerLogin.Add(usernamegSizer, 1, wx.EXPAND, 5)
- passwordgSizer = wx.GridSizer(0, 2, 0, 0)
- self.m_staticTextpassword = wx.StaticText(sbSizerLogin.GetStaticBox(), wx.ID_ANY, u"密码", wx.DefaultPosition,
- wx.DefaultSize, 0)
- self.m_staticTextpassword.Wrap(-1)
- passwordgSizer.Add(self.m_staticTextpassword, 0, wx.ALL | wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
- self.m_textCtrlpassword = wx.TextCtrl(sbSizerLogin.GetStaticBox(), wx.ID_ANY, wx.EmptyString,
- wx.DefaultPosition, wx.DefaultSize, wx.TE_PASSWORD)
- passwordgSizer.Add(self.m_textCtrlpassword, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- sbSizerLogin.Add(passwordgSizer, 1, wx.EXPAND, 5)
- buttonbSizer = wx.BoxSizer(wx.HORIZONTAL)
- buttonbSizer.Add((0, 0), 1, wx.EXPAND, 5)
- self.m_buttonCancel = wx.Button(sbSizerLogin.GetStaticBox(), wx.ID_ANY, u"取消", wx.DefaultPosition,
- wx.DefaultSize, 0)
- buttonbSizer.Add(self.m_buttonCancel, 0, wx.ALL, 5)
- self.m_buttonOK = wx.Button(sbSizerLogin.GetStaticBox(), wx.ID_ANY, u"确定", wx.DefaultPosition, wx.DefaultSize,
- 0)
- buttonbSizer.Add(self.m_buttonOK, 0, wx.ALL, 5)
- buttonbSizer.Add((0, 0), 1, wx.EXPAND, 5)
- sbSizerLogin.Add(buttonbSizer, 1, wx.EXPAND, 5)
- self.SetSizer(sbSizerLogin)
- self.Layout()
- self.Centre(wx.BOTH)
- # Connect Events
- self.m_buttonCancel.Bind(wx.EVT_BUTTON, self.loginreset)
- self.m_buttonOK.Bind(wx.EVT_BUTTON, self.loginsubmit)
- def __del__(self):
- pass
- def loginsubmit(self, event):
- login_user = (self.m_textCtrlusername.GetValue(),)
- conn = sqlite3.connect('t.db')
- cur = conn.execute('SELECT * FROM admin WHERE uname=?', login_user)
- res = cur.fetchone()
- conn.close()
- if res is None:
- wx.MessageBox("用户不存在!")
- else:
- if res[1] != self.m_textCtrlpassword.GetValue():
- wx.MessageBox("密码不正确!")
- else:
- wx.MessageBox("登录成功!")
- self.Close()
- newf = MainGUI(None)
- newf.Show(True)
- def loginreset(self, event):
- self.Close()
- class MainGUI(wx.Frame):
- def __init__(self, parent):
- wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,
- size=wx.Size(200, 350), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
- self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
- bSizerMain = wx.BoxSizer(wx.VERTICAL)
- bSizersno = wx.BoxSizer(wx.HORIZONTAL)
- self.m_staticTextsno = wx.StaticText(self, wx.ID_ANY, u"学号", wx.DefaultPosition, wx.DefaultSize, 0)
- self.m_staticTextsno.Wrap(-1)
- bSizersno.Add(self.m_staticTextsno, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- self.m_textCtrlsno = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
- bSizersno.Add(self.m_textCtrlsno, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- bSizerMain.Add(bSizersno, 1, wx.EXPAND, 5)
- bSizer7 = wx.BoxSizer(wx.HORIZONTAL)
- self.m_staticTextsname = wx.StaticText(self, wx.ID_ANY, u"姓名", wx.DefaultPosition, wx.DefaultSize, 0)
- self.m_staticTextsname.Wrap(-1)
- bSizer7.Add(self.m_staticTextsname, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- self.m_textCtrlsname = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
- bSizer7.Add(self.m_textCtrlsname, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- bSizerMain.Add(bSizer7, 1, wx.EXPAND, 5)
- bSizer8 = wx.BoxSizer(wx.HORIZONTAL)
- self.m_staticTextsdept = wx.StaticText(self, wx.ID_ANY, u"所在系", wx.DefaultPosition, wx.DefaultSize, 0)
- self.m_staticTextsdept.Wrap(-1)
- bSizer8.Add(self.m_staticTextsdept, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- self.m_textCtrlsdept = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
- bSizer8.Add(self.m_textCtrlsdept, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- bSizerMain.Add(bSizer8, 1, wx.EXPAND, 5)
- bSizer9 = wx.BoxSizer(wx.HORIZONTAL)
- self.m_staticTextsbirth = wx.StaticText(self, wx.ID_ANY, u"出生日期", wx.DefaultPosition, wx.DefaultSize, 0)
- self.m_staticTextsbirth.Wrap(-1)
- bSizer9.Add(self.m_staticTextsbirth, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- self.m_textCtrlsbirth = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
- bSizer9.Add(self.m_textCtrlsbirth, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- bSizerMain.Add(bSizer9, 1, wx.EXPAND, 5)
- bSizer10 = wx.BoxSizer(wx.HORIZONTAL)
- self.m_staticTextscredit = wx.StaticText(self, wx.ID_ANY, u"学分", wx.DefaultPosition, wx.DefaultSize, 0)
- self.m_staticTextscredit.Wrap(-1)
- bSizer10.Add(self.m_staticTextscredit, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- self.m_textCtrlscredit = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
- bSizer10.Add(self.m_textCtrlscredit, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
- bSizerMain.Add(bSizer10, 1, wx.EXPAND, 5)
- gSizer6 = wx.GridSizer(0, 2, 0, 0)
- self.m_buttonsave = wx.Button(self, wx.ID_ANY, u"提交", wx.DefaultPosition, wx.DefaultSize, 0)
- gSizer6.Add(self.m_buttonsave, 0, wx.ALL | wx.EXPAND, 5)
- self.m_buttonload = wx.Button(self, wx.ID_ANY, u"读取", wx.DefaultPosition, wx.DefaultSize, 0)
- gSizer6.Add(self.m_buttonload, 0, wx.ALL | wx.EXPAND, 5)
- bSizerMain.Add(gSizer6, 1, wx.EXPAND, 5)
- self.SetSizer(bSizerMain)
- self.Layout()
- self.Centre(wx.BOTH)
- # Connect Events
- self.m_buttonsave.Bind(wx.EVT_BUTTON, self.sqlSave)
- self.m_buttonload.Bind(wx.EVT_BUTTON, self.sqlLoad)
- def __del__(self):
- pass
- # Virtual event handlers, overide them in your derived class
- def sqlSave(self, event):
- sno = self.m_textCtrlsno.GetValue()
- sname = self.m_textCtrlsname.GetValue()
- sdept = self.m_textCtrlsdept.GetValue()
- sbirth = self.m_textCtrlsbirth.GetValue()
- scredit = self.m_textCtrlscredit.GetValue()
- conn = sqlite3.connect('t.db')
- if sno == '':
- wx.MessageBox("学号不能为空!")
- return
- else:
- data = (sno, sname, sdept, sbirth, scredit)
- try:
- conn.execute('INSERT INTO xs VALUES (?,?,?,?,?)', data)
- except sqlite3.IntegrityError:
- wx.MessageBox("学号%s已经存在!" % (sno))
- except sqlite3.OperationalError:
- wx.MessageBox("发生错误!")
- conn.commit()
- conn.close()
- wx.MessageBox("操作成功!")
- self.m_textCtrlsname.SetValue('')
- self.m_textCtrlsdept.SetValue('')
- self.m_textCtrlsbirth.SetValue('')
- self.m_textCtrlscredit.SetValue('')
- def sqlLoad(self, event):
- sno = self.m_textCtrlsno.GetValue()
- conn = sqlite3.connect('t.db')
- cur = conn.execute('SELECT * FROM xs WHERE sno = ?', (sno,))
- ret = cur.fetchone()
- if ret is None:
- wx.MessageBox("学号%s不存在!" % (sno))
- else:
- self.m_textCtrlsno.SetValue(str(ret[0]))
- self.m_textCtrlsname.SetValue(ret[1])
- self.m_textCtrlsdept.SetValue(ret[2])
- self.m_textCtrlsbirth.SetValue(str(ret[3]))
- self.m_textCtrlscredit.SetValue(str(ret[4]))
- conn.close()
- app = wx.App(False)
- frame = LoginFrame(None)
- # frame = MainGUI(None)
- frame.Show(True)
- app.MainLoop()
Add Comment
Please, Sign In to add comment