干部档案管理系统wxpython+mysql
主要是其他博主信息系统的代码,自己将其扩展,400行改到1000多行, 想通过这个信息系统了解wxpython,或者根据其编写其他信息系统也是极好的材料。 主要分了两个文件,时间有限,很多东西都是现学的,明天就要交了,难免有不完美的地方。
#导入mx模块
import wx
import wx.grid
from mydb2_1 import Sql_operation
#创建干部档案管理系统登录界面类
class UserLogin(wx.Frame):
'''
登录界面
'''
#初始化登录界面
def __init__(self,*args,**kw):
# ensure the parent's __init__ is called
super(UserLogin,self).__init__(*args, **kw)
#设置窗口屏幕居中
self.Center()
#创建窗口
self.pnl = wx.Panel(self)
self.pnl.Bind(wx.EVT_ERASE_BACKGROUND,self.OnEraseBack)
#调用登录界面函数
self.LoginInterface()
def OnEraseBack(self,event):
dc = event.GetDC()
if not dc:
dc = wx.ClientDC(self)
rect = self.GetUpdateRegion().GetBox()
dc.SetClippingRegion(rect)
dc.Clear()
bmp = wx.Bitmap("干部档案\image.jpg")
dc.DrawBitmap(bmp, 0, 0)
def LoginInterface(self):
#创建垂直方向box布局管理器
vbox = wx.BoxSizer(wx.VERTICAL)
#################################################################################
logo = wx.StaticText(self.pnl,label="")
font = logo.GetFont()
font.PointSize += 30
font = font.Bold()
logo.SetFont(font)
#添加logo静态文本到vbox布局管理器
vbox.Add(logo,proportion=0,flag=wx.FIXED_MINSIZE | wx.TOP | wx.CENTER,border=300)
self.pnl.Center()
username = wx.StaticBox(self.pnl,label="用户名")
password = wx.StaticBox(self.pnl,label="密 码")
#创建水平方向box布局管理器
hsbox_username = wx.StaticBoxSizer(username,wx.HORIZONTAL)
hsbox_password = wx.StaticBoxSizer(password,wx.HORIZONTAL)
#创建用户名、密码输入框
self.user_name = wx.TextCtrl(self.pnl,size=(210,25))
self.user_password = wx.TextCtrl(self.pnl,size=(210,25))
#添加用户名和密码输入框到hsbox布局管理器
hsbox_username.Add(self.user_name,0,wx.BOTTOM,5)
hsbox_password.Add(self.user_password,0,wx.BOTTOM,5)
#将水平box添加到垂直box
vbox.Add(hsbox_username,proportion=0,flag=wx.CENTER)
vbox.Add(hsbox_password,proportion=0,flag=wx.CENTER)
#################################################################################
#创建水平方向box布局管理器
hbox = wx.BoxSizer()
#创建登录按钮、绑定事件处理
login_button = wx.Button(self.pnl,label="登录",size=(80,25))
login_button.Bind(wx.EVT_BUTTON,self.LoginButton)
#添加登录按钮到hbox布局管理器
hbox.Add(login_button,0,flag=wx.EXPAND | wx.TOP,border=5)
#将水平box添加到垂直box
vbox.Add(hbox,proportion=0,flag=wx.CENTER)
#################################################################################
#设置面板的布局管理器vbox
self.pnl.SetSizer(vbox)
def LoginButton(self,event):
#连接login_users数据库
op = Sql_operation("official")
#获取users表中的用户名和密码信息,返回为二维元组
np = op.FindAll("users")
#匹配标记
login_sign = 0
#匹配用户名和密码
for i in np:
if (i[1] == self.user_name.GetValue()) and (i[2] == self.user_password.GetValue()):
login_sign = 1
break
if login_sign == 0:
print("用户名或密码错误!")
elif login_sign == 1:
print("登录成功!")
operation = UserOperation(None,title="干部档案管理系统",size=(1800,1000))
operation.Show()
self.Close(True)
登陆界面
操作界面
会有输入成功、失败的报错。
明天早上还会再改进一下。明天下午交老师了。
想要源码及数据库文件和实验报告,联系我就好,看到就会回,我也是第一次发博客,小小菜鸡,望大家支持。 邮箱 486722725@qq.com b站私信我应该也行uid:398815115
|