吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2186|回复: 1
收起左侧

[会员申请] 申请会员ID:foxfoxcatcat

[复制链接]
吾爱游客  发表于 2021-1-20 16:32
1、申 请 I D :foxfoxcatcat                                    
2、个人邮箱:594624657@qq.com
3、原创技术文章:

关于简单的管理信息系统的开发——论文管理系统 有简单的ui界面


简单的界面,成品图

界面截图

界面截图

一、包和开发语言

  运用了简单易上手的python语言作为开发语言,中间使用了 wxpython作为ui界面的包,运用了mypython连接数据库使用。


二、功能

实现对论文信息的管理,分为管理员和普通用户,普通用户无法删除论文信息。

$NPYLD4B77[`3)@IP4)M5{4.png `%[4%{7S~{_7$O(B@[CK1TB.png

三、代码
[Python] 纯文本查看 复制代码
import pymysql


class Sql_operation(object):
	'''
	数据库操作
	'''
	
	def __init__(self,MySQLdb): 
		
		self.MySQLdb = MySQLdb
		
		self.db = pymysql.connect(host = "localhost",user = "root",password = "000605",db = self.MySQLdb,charset = "utf8")
		
		self.cursor = self.db.cursor()
		
	
	def FindAll(self,table_name):
		
		self.table_name = table_name
		
		sql = "select * from %s"%(self.table_name)
		try:
			
			self.cursor.execute(sql)
			
			data = self.cursor.fetchall()
			return data			
		except Exception as err:
			print("SQL执行错误,原因:",err)

	
	def InsertUser(self,user_name,user_password):
		id = 2
		self.user_name = user_name
		self.user_password = user_password
		
		sql = "insert into users(id,user_name,user_password)values('%s','%s','%s')"%(int(id),self.user_name,self.user_password)
		try:
			
			self.cursor.execute(sql)
			
			self.db.commit()
		except Exception as err:
			
			self.db.rollback()
			print("SQL执行错误,原因:",err)
	def Insert(self,stu_name,stu_gender,stu_age,stu_cid,stu_classid,stu_phone,stu_id):
		
		self.stu_name = stu_name
		self.stu_gender = stu_gender
		self.stu_age = stu_age
		self.stu_cid = stu_cid
		self.stu_classid = stu_classid
		self.stu_phone = stu_phone
		self.stu_id = stu_id
		
		sql = "insert into Paper(Papername,author,date,keyword,abstract,journal,id) values('%s','%s','%s','%s','%s','%s','%d')"%(self.stu_name,self.stu_gender,self.stu_age,self.stu_cid,self.stu_classid,self.stu_phone,int(self.stu_id))
		try:
			
			self.cursor.execute(sql)
			
			self.db.commit()
		except Exception as err:
			
			self.db.rollback()
			print("SQL执行错误,原因:",err)

	
	def Del(self,stu_id):
		
		self.stu_id = stu_id
		
		sql = "delete from Paper where id=%d"%(self.stu_id)
		try:
			
			self.cursor.execute(sql)
			
			self.db.commit()
		except Exception as err:
			
			self.db.rollback()
			print("SQL执行错误,原因:",err)
	
	
	def Update(self,id,amend_name,amend_value):
		self.id = id
		self.amend_name = amend_name
		self.amend_value = amend_value
	
		sql = "update Paper set %s=%s where id=%d"%(self.amend_name,self.amend_value,int(self.id)) 
		
		try:
			
			self.cursor.execute(sql)
			
			self.db.commit()
		except Exception as err:
			
			self.db.rollback()
			print("SQL执行错误,原因:",err)
	
	def __del__(self):
		
		self.db.close()
		
import wx
import wx.grid

import os
import pymysql



class UserLogin(wx.Frame):
	
	
	def __init__(self,*args,**kw):
		
		super(UserLogin,self).__init__(*args, **kw)
		
		self.Center()
		
		self.pnl = wx.Panel(self)
		
		self.LoginInterface()

	def LoginInterface(self):
		
		vbox = wx.BoxSizer(wx.VERTICAL)
		#################################################################################
		
		logo = wx.StaticText(self.pnl,label="论文管理系统")
		font = logo.GetFont()
		font.PointSize += 30
		font = font.Bold()
		logo.SetFont(font)
		
		vbox.Add(logo,proportion=0,flag=wx.FIXED_MINSIZE | wx.TOP | wx.CENTER,border=180)
		#################################################################################
		
		sb_username = wx.StaticBox(self.pnl,label="用户名")
		sb_password = wx.StaticBox(self.pnl,label="密  码")		
		
		hsbox_username = wx.StaticBoxSizer(sb_username,wx.HORIZONTAL)
		hsbox_password = wx.StaticBoxSizer(sb_password,wx.HORIZONTAL)
		
		self.user_name = wx.TextCtrl(self.pnl,size=(210,25))
		self.user_password = wx.TextCtrl(self.pnl,size=(210,25))
		
		hsbox_username.Add(self.user_name,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_password.Add(self.user_password,0,wx.EXPAND | wx.BOTTOM,5)
		
		vbox.Add(hsbox_username,proportion=0,flag=wx.CENTER)
		vbox.Add(hsbox_password,proportion=0,flag=wx.CENTER)
		#################################################################################
		
		hbox = wx.BoxSizer()
		
		login_button = wx.Button(self.pnl,label="登录",size=(100,30))
		regis_button = wx.Button(self.pnl,label="注册",size=(100,30))
		login_button.Bind(wx.EVT_BUTTON,self.LoginButton)
		regis_button.Bind(wx.EVT_BUTTON,self.RegisButton)
		
		hbox.Add(login_button,0,flag=wx.EXPAND | wx.TOP,border=5)
		hbox.Add(regis_button,0,flag=wx.EXPAND | wx.TOP,border=5)
		
		
		vbox.Add(hbox,proportion=0,flag=wx.CENTER)
		#################################################################################
				
		self.pnl.SetSizer(vbox)		

	def RegisButton(self,event):
		
		op = Sql_operation("student_db")
		user_name = self.user_name.GetValue()
		user_password = self.user_password.GetValue()
		np = op.InsertUser(user_name,user_password)
		print("注册成功")
	
	def LoginButton(self,event):
		
		op = Sql_operation("student_db")
		
		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() and i[0] == 1):
				login_sign = 1
				break
			elif (i[1] == self.user_name.GetValue()) and (i[2] == self.user_password.GetValue() and i[0] == 2):
				login_sign = 2
				break
		if login_sign == 0:
			print("用户名或密码错误!")
		elif (login_sign) == 1:
			print("登录成功!")			
			operation = UserOperation(None,title="论文管理系统(管理员)",size=(1024,668))
			operation.Show()
			self.Close(True)
		elif (login_sign) == 2:
			os.system(r"python C:\Users\Administrator\Desktop\Holiday\Paper\main3.py")

class UserOperation(wx.Frame):
	'''
	操作界面
	'''
	def __init__(self,*args,**kw):
		
		super(UserOperation,self).__init__(*args, **kw)
		
		self.Center()
		
		self.pnl = wx.Panel(self)
		
		self.OperationInterface()

	def OperationInterface(self):
		
		self.vbox = wx.BoxSizer(wx.VERTICAL)		
		#################################################################################
		
		logo = wx.StaticText(self.pnl,label="论文管理系统(管理员)")
		font = logo.GetFont()
		font.PointSize += 30
		font = font.Bold()
		logo.SetFont(font)
		
		self.vbox.Add(logo,proportion=0,flag=wx.FIXED_MINSIZE | wx.TOP | wx.CENTER,border=5)
		#################################################################################
		
		sb_button = wx.StaticBox(self.pnl,label="选择操作")
		
		vsbox_button = wx.StaticBoxSizer(sb_button,wx.VERTICAL)
		
		check_button = wx.Button(self.pnl,id=10,label="查看论文信息",size=(200,60))
		add_button = wx.Button(self.pnl,id=11,label="添加论文信息",size=(200,60))
		delete_button = wx.Button(self.pnl,id=12,label="删除论文信息",size=(200,60))
		update_button = wx.Button(self.pnl,id=13,label="修改论文信息",size=(200,60))
		quit_button = wx.Button(self.pnl,id=14,label="退出系统",size=(200,60))
		self.Bind(wx.EVT_BUTTON,self.ClickButton,id=10,id2=14)
		
		vsbox_button.Add(check_button,0,wx.EXPAND | wx.BOTTOM,20)
		vsbox_button.Add(add_button,0,wx.EXPAND | wx.BOTTOM,20)
		vsbox_button.Add(delete_button,0,wx.EXPAND | wx.BOTTOM,20)
		vsbox_button.Add(update_button,0,wx.EXPAND | wx.BOTTOM,20)
		vsbox_button.Add(quit_button,0,wx.EXPAND | wx.BOTTOM,20)		
		
		sb_show_operation = wx.StaticBox(self.pnl,label="显示/操作窗口",size=(800,1000))
                
		self.vsbox_show_operation = wx.StaticBoxSizer(sb_show_operation,wx.VERTICAL)
		
		hbox = wx.BoxSizer()
		hbox.Add(vsbox_button,0,wx.EXPAND | wx.BOTTOM,5)
		hbox.Add(self.vsbox_show_operation,0,wx.EXPAND | wx.BOTTOM,5)
			
		self.vbox.Add(hbox,proportion=0,flag=wx.CENTER)		
		#################################################################################
		self.pnl.SetSizer(self.vbox)

	def ClickButton(self,event):
		source_id = event.GetId()
		if source_id == 10:
			print("查询操作!")
			inquire_button = InquireOp(None,title="论文管理系统(管理员)",size=(1024,668))
			inquire_button.Show()
			self.Close(True)			
		elif source_id == 11:
			print("添加操作!")
			add_button = AddOp(None,title="论文管理系统(管理员)",size=(1024,668))
			add_button.Show()
			self.Close(True)						
		elif source_id == 12:
			print("删除操作!")
			del_button = DelOp(None,title="论文管理系统(管理员)",size=(1024,668))
			del_button.Show()
			self.Close(True)	
		elif source_id == 13:
			print("修改操作!")
			del_button = UpdOp(None,title="论文管理系统(管理员)",size=(1024,668))
			del_button.Show()
			self.Close(True)
		elif source_id == 14:
			self.Close(True)

#继承UserOperation类,实现初始化操作界面
class InquireOp(UserOperation):
#class InquireOp(InquireOp):
	def __init__(self,*args,**kw):
		# ensure the parent's __init__ is called
		super(InquireOp,self).__init__(*args, **kw)
		#创建论文列表信息网格
		self.stu_grid = self.CreateGrid()
		self.stu_grid.Bind(wx.grid.EVT_GRID_LABEL_LEFT_CLICK,self.OnLabelleftClick)
		#添加到vsbox_show_operation布局管理器
		self.vsbox_show_operation.Add(self.stu_grid,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,30)		

	def ClickButton(self,event):
		source_id = event.GetId()
		if source_id == 10:
			pass						
		elif source_id == 11:
			print("添加操作!")
			add_button = AddOp(None,title="论文管理系统(管理员)",size=(1024,668))
			add_button.Show()
			self.Close(True)						
		elif source_id == 12:
			print("删除操作!")
			del_button = DelOp(None,title="论文管理系统(管理员)",size=(1024,668))
			del_button.Show()
			self.Close(True)
		elif source_id == 13:
			print("修改操作!")
			del_button = UpdOp(None,title="论文管理系统(管理员)",size=(1024,668))
			del_button.Show()
			self.Close(True)
		elif source_id == 14:
			self.Close(True)

	def CreateGrid(self):
		#连接student_db数据库
		op = Sql_operation("student_db")
		#获取Paper表中的论文信息,返回为二维元组
		np = op.FindAll("Paper")
		column_names = ("文章名","作者","日期","关键字","摘要","日志")
		stu_grid = wx.grid.Grid(self.pnl)
		stu_grid.CreateGrid(len(np),len(np[0])-1)
		for row in range(len(np)):
			stu_grid.SetRowLabelValue(row,str(np[row][0]))#确保网格序列号与数据库id保持一致
			for col in range(1,len(np[row])):
				stu_grid.SetColLabelValue(col-1,column_names[col-1])
				stu_grid.SetCellValue(row,col-1,str(np[row][col]))				
		stu_grid.AutoSize()
		return stu_grid

	def OnLabelleftClick(self,event):
		#连接student_db数据库
		op = Sql_operation("student_db")
		#获取users表中的用户名和密码信息,返回为二维元组
		np = op.FindAll("users")
		print("RowIdx: {0}".format(event.GetRow()))
		print("ColIdx: {0}".format(event.GetRow()))
		print(np[event.GetRow()])
		event.Skip()

#继承UserOperation类,实现初始化操作界面
class AddOp(UserOperation):
#class AddOp(InquireOp):
	def __init__(self,*args,**kw):
		# ensure the parent's __init__ is called
		super(AddOp,self).__init__(*args, **kw)
		#创建添加论文息输入框、添加按钮
		self.id = wx.TextCtrl(self.pnl,size = (210,25))
		self.Papername = wx.TextCtrl(self.pnl,size = (210,25))
		self.author = wx.TextCtrl(self.pnl,size = (210,25))
		self.date = wx.TextCtrl(self.pnl,size = (210,25))
		self.keyword = wx.TextCtrl(self.pnl,size = (210,25))
		self.abstract = wx.TextCtrl(self.pnl,size = (420,25))
		self.journal = wx.TextCtrl(self.pnl,size = (420,25))
		self.add_affirm = wx.Button(self.pnl,label="添加",size=(80,25))
		#为添加按钮组件绑定事件处理
		self.add_affirm.Bind(wx.EVT_BUTTON,self.AddAffirm)
		#################################################################################
		#创建静态框
		sb_id = wx.StaticBox(self.pnl,label="序号")
		sb_name = wx.StaticBox(self.pnl,label="文章名")
		sb_gender = wx.StaticBox(self.pnl,label="作者")
		sb_age = wx.StaticBox(self.pnl,label="日期")
		sb_cid = wx.StaticBox(self.pnl,label="关键字")
		sb_classid = wx.StaticBox(self.pnl,label="摘要")
		sb_phone = wx.StaticBox(self.pnl,label="日志")		
		#创建水平方向box布局管理器
		hsbox_id = wx.StaticBoxSizer(sb_id,wx.HORIZONTAL)
		hsbox_name = wx.StaticBoxSizer(sb_name,wx.HORIZONTAL)
		hsbox_gender = wx.StaticBoxSizer(sb_gender,wx.HORIZONTAL)
		hsbox_age = wx.StaticBoxSizer(sb_age,wx.HORIZONTAL)
		hsbox_cid = wx.StaticBoxSizer(sb_cid,wx.HORIZONTAL)
		hsbox_classid = wx.StaticBoxSizer(sb_classid,wx.HORIZONTAL)
		hsbox_phone = wx.StaticBoxSizer(sb_phone,wx.HORIZONTAL)
		#添加到hsbox布局管理器
		hsbox_id.Add(self.id,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_name.Add(self.Papername,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_gender.Add(self.author,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_age.Add(self.date,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_cid.Add(self.keyword,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_classid.Add(self.abstract,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_phone.Add(self.journal,0,wx.EXPAND | wx.BOTTOM,5)
		#################################################################################
		#添加到vsbox_show_operation布局管理器
		self.vsbox_show_operation.Add(hsbox_id,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_name,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_gender,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_age,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_cid,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_classid,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_phone,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(self.add_affirm,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)

	def ClickButton(self,event):
		source_id = event.GetId()
		if source_id == 10:
			print("查询操作!")
			inquire_button = InquireOp(None,title="论文管理系统(管理员)",size=(1024,668))
			inquire_button.Show()
			self.Close(True)			
		elif source_id == 11:
			pass						
		elif source_id == 12:
			print("删除操作!")
			del_button = DelOp(None,title="论文管理系统(管理员)",size=(1024,668))
			del_button.Show()
			self.Close(True)
		elif source_id == 13:
			print("修改操作!")
			del_button = UpdOp(None,title="论文管理系统(管理员)",size=(1024,668))
			del_button.Show()
			self.Close(True)
		elif source_id == 14:
			self.Close(True)

	def AddAffirm(self,event):
		#连接student_db数据库
		op = Sql_operation("student_db")
		#向Paper表添加论文信息
		Papername = self.Papername.GetValue()
		print(Papername)
		author = self.author.GetValue()
		print(author)
		date = self.date.GetValue()
		print(date)
		keyword = self.keyword.GetValue()
		print(keyword)
		abstract = self.abstract.GetValue()
		print(abstract)
		journal = self.journal.GetValue()
		print(journal)
		#np = op.Insert(Papername,author,date,keyword,abstract,journal)
		id = self.id.GetValue()
		print(id)
		np = op.Insert(Papername,author,date,keyword,abstract,journal,id)

#继承InquireOp类,实现初始化操作界面
class DelOp(InquireOp):
	def __init__(self,*args,**kw):
		# ensure the parent's __init__ is called
		super(DelOp,self).__init__(*args, **kw)
		#创建删除学员信息输入框、删除按钮
		self.del_id = wx.TextCtrl(self.pnl,pos = (407,78),size = (210,25))
		self.del_affirm = wx.Button(self.pnl,label="删除",pos=(625,78),size=(80,25))
		#为删除按钮组件绑定事件处理
		self.del_affirm.Bind(wx.EVT_BUTTON,self.DelAffirm)
		#################################################################################
		#创建静态框
		sb_del = wx.StaticBox(self.pnl,label="请输入需要删除的论文的ID")
		#创建水平方向box布局管理器
		hsbox_del = wx.StaticBoxSizer(sb_del,wx.HORIZONTAL)
		#添加到hsbox_name布局管理器
		hsbox_del.Add(self.del_id,0,wx.EXPAND | wx.BOTTOM,5)
		#添加到vsbox_show_operation布局管理器
		self.vsbox_show_operation.Add(hsbox_del,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(self.del_affirm,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)

	def ClickButton(self,event):
		source_id = event.GetId()
		if source_id == 10:
			print("查询操作!")
			inquire_button = InquireOp(None,title="论文管理系统",size=(1024,668))
			inquire_button.Show()
			self.Close(True)			
		elif source_id == 11:
			print("添加操作!")
			add_button = AddOp(None,title="论文管理系统",size=(1024,668))
			add_button.Show()
			self.Close(True)						
		elif source_id == 12:
			pass
		elif source_id == 13:
			print("修改操作!")
			del_button = UpdOp(None,title="论文管理系统",size=(1024,668))
			del_button.Show()
			self.Close(True)
		elif source_id == 14:
			self.Close(True)

	def DelAffirm(self,event):
		#连接student_db数据库
		op = Sql_operation("student_db")

		del_id = self.del_id.GetValue()
		print(del_id)
		np = op.Del(int(del_id))
		
		del_button = DelOp(None,title="论文管理系统",size=(1024,668))
		del_button.Show()
		self.Close(True)

class UpdOp(InquireOp):
	def __init__(self,*args,**kw):
		# ensure the parent's __init__ is called
		super(UpdOp,self).__init__(*args, **kw)
		#创建添加论文息输入框、添加按钮
		self.id = wx.TextCtrl(self.pnl,size = (210,25))
		self.update_name = wx.TextCtrl(self.pnl,size = (210,25))
		self.update_acc = wx.TextCtrl(self.pnl,size = (210,25))
		self.add_affirm = wx.Button(self.pnl,label="确认更新",pos=(550,520),size=(80,25))
		#为添加按钮组件绑定事件处理
		self.add_affirm.Bind(wx.EVT_BUTTON,self.UpdateAffirm)
		#################################################################################
		#创建静态框
		sb_id = wx.StaticBox(self.pnl,label="需要更新的论文id")
		sb_name = wx.StaticBox(self.pnl,label="需要更新的内容标题")
		sb_acc = wx.StaticBox(self.pnl,label="更新的内容")
				
		#创建水平方向box布局管理器
		hsbox_id = wx.StaticBoxSizer(sb_id,wx.HORIZONTAL)
		hsbox_name = wx.StaticBoxSizer(sb_name,wx.HORIZONTAL)
		hsbox_acc = wx.StaticBoxSizer(sb_acc,wx.HORIZONTAL)
		
		#添加到hsbox布局管理器
		hsbox_id.Add(self.id,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_name.Add(self.update_name,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_acc.Add(self.update_acc,0,wx.EXPAND | wx.BOTTOM,5)
		
		#################################################################################
		#添加到vsbox_show_operation布局管理器
		self.vsbox_show_operation.Add(hsbox_id,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_name,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_acc,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		

	def ClickButton(self,event):
		source_id = event.GetId()
		if source_id == 10:
			print("查询操作!")
			inquire_button = InquireOp(None,title="论文管理系统(管理员)",size=(1024,668))
			inquire_button.Show()
			self.Close(True)			
		elif source_id == 11:
			pass						
		elif source_id == 12:
			print("删除操作!")
			del_button = DelOp(None,title="论文管理系统(管理员)",size=(1024,668))
			del_button.Show()
			self.Close(True)
		elif source_id == 13:
			pass
		elif source_id == 14:
			self.Close(True)

	def UpdateAffirm(self,event):
		#连接student_db数据库
		op = Sql_operation("student_db")
		
		update_name = self.update_name.GetValue()
		print(update_name)
		update_acc = self.update_acc.GetValue()
		print(update_acc)
		id = self.id.GetValue()
		print(id)
		np = op.Update(id,update_name,update_acc)
		
if __name__ == '__main__':
	app = wx.App()
	login = UserLogin(None,title="论文管理系统(管理员)",size=(1024,668))
	login.Show()
	app.MainLoop()

del app
import wx
import wx.grid




class UserOperation(wx.Frame):
	'''
	操作界面
	'''
	def __init__(self,*args,**kw):
		# ensure the parent's __init__ is called
		super(UserOperation,self).__init__(*args, **kw)
		#设置窗口屏幕居中
		self.Center()
		#创建窗口
		self.pnl = wx.Panel(self)
		#调用操作界面函数
		self.OperationInterface()

	def OperationInterface(self):
		#创建垂直方向box布局管理器
		self.vbox = wx.BoxSizer(wx.VERTICAL)		
		#################################################################################
		#创建logo静态文本,设置字体属性
		logo = wx.StaticText(self.pnl,label="论文管理系统(用户)")
		font = logo.GetFont()
		font.PointSize += 30
		font = font.Bold()
		logo.SetFont(font)
		#添加logo静态文本到vbox布局管理器
		self.vbox.Add(logo,proportion=0,flag=wx.FIXED_MINSIZE | wx.TOP | wx.CENTER,border=5)
		#################################################################################
		#创建静态框
		sb_button = wx.StaticBox(self.pnl,label="选择操作")
		#创建垂直方向box布局管理器
		vsbox_button = wx.StaticBoxSizer(sb_button,wx.VERTICAL)
		#创建操作按钮、绑定事件处理
		check_button = wx.Button(self.pnl,id=10,label="查看论文信息",size=(150,50))
		add_button = wx.Button(self.pnl,id=11,label="添加论文信息",size=(150,50))
		#delete_button = wx.Button(self.pnl,id=12,label="删除论文信息",size=(150,50))
		quit_button = wx.Button(self.pnl,id=13,label="退出系统",size=(150,50))
		self.Bind(wx.EVT_BUTTON,self.ClickButton,id=10,id2=13)
		#添加操作按钮到vsbox布局管理器
		vsbox_button.Add(check_button,0,wx.EXPAND | wx.BOTTOM,40)
		vsbox_button.Add(add_button,0,wx.EXPAND | wx.BOTTOM,40)
		#vsbox_button.Add(delete_button,0,wx.EXPAND | wx.BOTTOM,40)
		vsbox_button.Add(quit_button,0,wx.EXPAND | wx.BOTTOM,200)		
		#创建静态框
		sb_show_operation = wx.StaticBox(self.pnl,label="显示/操作窗口",size=(800,800))
		#创建垂直方向box布局管理器
		self.vsbox_show_operation = wx.StaticBoxSizer(sb_show_operation,wx.VERTICAL)
		#创建水平方向box布局管理器
		hbox = wx.BoxSizer()
		hbox.Add(vsbox_button,0,wx.EXPAND | wx.BOTTOM,5)
		hbox.Add(self.vsbox_show_operation,0,wx.EXPAND | wx.BOTTOM,5)
		#将hbox添加到垂直box		
		self.vbox.Add(hbox,proportion=0,flag=wx.CENTER)		
		#################################################################################
		self.pnl.SetSizer(self.vbox)

	def ClickButton(self,event):
		source_id = event.GetId()
		if source_id == 10:
			print("查询操作!")
			inquire_button = InquireOp(None,title="论文管理系统(用户)",size=(1024,668))
			inquire_button.Show()
			self.Close(True)			
		elif source_id == 11:
			print("添加操作!")
			add_button = AddOp(None,title="论文管理系统(用户)",size=(1024,668))
			add_button.Show()
			self.Close(True)						
		elif source_id == 12:
			print("删除操作!")
			del_button = DelOp(None,title="论文管理系统(用户)",size=(1024,668))
			del_button.Show()
			self.Close(True)			
		elif source_id == 13:
			self.Close(True)

#继承UserOperation类,实现初始化操作界面
class InquireOp(UserOperation):
	def __init__(self,*args,**kw):
		# ensure the parent's __init__ is called
		super(InquireOp,self).__init__(*args, **kw)
		#创建论文列表信息网格
		self.stu_grid = self.CreateGrid()
		self.stu_grid.Bind(wx.grid.EVT_GRID_LABEL_LEFT_CLICK,self.OnLabelleftClick)
		#添加到vsbox_show_operation布局管理器
		self.vsbox_show_operation.Add(self.stu_grid,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,30)		

	def ClickButton(self,event):
		source_id = event.GetId()
		if source_id == 10:
			pass
		elif source_id == 11:
			print("添加操作!")
			add_button = AddOp(None,title="论文管理系统(用户)",size=(1024,668))
			add_button.Show()
			self.Close(True)						
		elif source_id == 12:
			print("删除操作!")
			del_button = DelOp(None,title="论文管理系统(用户)",size=(1024,668))
			del_button.Show()
			self.Close(True)			
		elif source_id == 13:
			self.Close(True)

	def CreateGrid(self):
		#连接student_db数据库
		op = Sql_operation("student_db")
		#获取Paper表中的论文信息,返回为二维元组
		np = op.FindAll("Paper")
		column_names = ("文章名","作者","日期","关键字","摘要","日志")
		stu_grid = wx.grid.Grid(self.pnl)
		stu_grid.CreateGrid(len(np),len(np[0])-1)
		for row in range(len(np)):
			stu_grid.SetRowLabelValue(row,str(np[row][0]))#确保网格序列号与数据库id保持一致
			for col in range(1,len(np[row])):
				stu_grid.SetColLabelValue(col-1,column_names[col-1])
				stu_grid.SetCellValue(row,col-1,str(np[row][col]))				
		stu_grid.AutoSize()
		return stu_grid

	def OnLabelleftClick(self,event):
		#连接student_db数据库
		op = Sql_operation("student_db")
		#获取users表中的用户名和密码信息,返回为二维元组
		np = op.FindAll("users")
		print("RowIdx: {0}".format(event.GetRow()))
		print("ColIdx: {0}".format(event.GetRow()))
		print(np[event.GetRow()])
		event.Skip()

#继承UserOperation类,实现初始化操作界面
class AddOp(UserOperation):
	def __init__(self,*args,**kw):
		# ensure the parent's __init__ is called
		super(AddOp,self).__init__(*args, **kw)
		#创建添加论文息输入框、添加按钮
		self.id = wx.TextCtrl(self.pnl,size = (210,25))
		self.Papername = wx.TextCtrl(self.pnl,size = (210,25))
		self.author = wx.TextCtrl(self.pnl,size = (210,25))
		self.date = wx.TextCtrl(self.pnl,size = (210,25))
		self.keyword = wx.TextCtrl(self.pnl,size = (210,25))
		self.abstract = wx.TextCtrl(self.pnl,size = (420,25))
		self.journal = wx.TextCtrl(self.pnl,size = (420,25))
		self.add_affirm = wx.Button(self.pnl,label="添加",size=(80,25))
		#为添加按钮组件绑定事件处理
		self.add_affirm.Bind(wx.EVT_BUTTON,self.AddAffirm)
		#################################################################################
		#创建静态框
		sb_id = wx.StaticBox(self.pnl,label="序号")
		sb_name = wx.StaticBox(self.pnl,label="文章名")
		sb_gender = wx.StaticBox(self.pnl,label="作者")
		sb_age = wx.StaticBox(self.pnl,label="日期")
		sb_cid = wx.StaticBox(self.pnl,label="关键字")
		sb_classid = wx.StaticBox(self.pnl,label="摘要")
		sb_phone = wx.StaticBox(self.pnl,label="日志")		
		#创建水平方向box布局管理器
		hsbox_id = wx.StaticBoxSizer(sb_id,wx.HORIZONTAL)
		hsbox_name = wx.StaticBoxSizer(sb_name,wx.HORIZONTAL)
		hsbox_gender = wx.StaticBoxSizer(sb_gender,wx.HORIZONTAL)
		hsbox_age = wx.StaticBoxSizer(sb_age,wx.HORIZONTAL)
		hsbox_cid = wx.StaticBoxSizer(sb_cid,wx.HORIZONTAL)
		hsbox_classid = wx.StaticBoxSizer(sb_classid,wx.HORIZONTAL)
		hsbox_phone = wx.StaticBoxSizer(sb_phone,wx.HORIZONTAL)
		#添加到hsbox布局管理器
		hsbox_id.Add(self.id,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_name.Add(self.Papername,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_gender.Add(self.author,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_age.Add(self.date,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_cid.Add(self.keyword,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_classid.Add(self.abstract,0,wx.EXPAND | wx.BOTTOM,5)
		hsbox_phone.Add(self.journal,0,wx.EXPAND | wx.BOTTOM,5)
		#################################################################################
		#添加到vsbox_show_operation布局管理器
		self.vsbox_show_operation.Add(hsbox_id,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_name,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_gender,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_age,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_cid,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_classid,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(hsbox_phone,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		self.vsbox_show_operation.Add(self.add_affirm,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)

	def ClickButton(self,event):
		source_id = event.GetId()
		if source_id == 10:
			print("查询操作!")
			inquire_button = InquireOp(None,title="论文管理系统(用户)",size=(1024,668))
			inquire_button.Show()
			self.Close(True)			
		elif source_id == 11:
			pass						
		elif source_id == 12:
			print("删除操作!")
			del_button = DelOp(None,title="论文管理系统(用户)",size=(1024,668))
			del_button.Show()
			self.Close(True)			
		elif source_id == 13:
			self.Close(True)
			

	def AddAffirm(self,event):
		#连接student_db数据库
		op = Sql_operation("student_db")
		#向Paper表添加论文信息
		Papername = self.Papername.GetValue()
		print(Papername)
		author = self.author.GetValue()
		print(author)
		date = self.date.GetValue()
		print(date)
		keyword = self.keyword.GetValue()
		print(keyword)
		abstract = self.abstract.GetValue()
		print(abstract)
		journal = self.journal.GetValue()
		print(journal)
		#np = op.Insert(Papername,author,date,keyword,abstract,journal)
		id = self.id.GetValue()
		print(id)
		np = op.Insert(Papername,author,date,keyword,abstract,journal,id)
		

#继承InquireOp类,实现初始化操作界面
# class DelOp(InquireOp):
	# def __init__(self,*args,**kw):
		# # ensure the parent's __init__ is called
		# super(DelOp,self).__init__(*args, **kw)
		# #创建删除学员信息输入框、删除按钮
		# self.del_id = wx.TextCtrl(self.pnl,pos = (407,78),size = (210,25))
		# self.del_affirm = wx.Button(self.pnl,label="删除",pos=(625,78),size=(80,25))
		# #为删除按钮组件绑定事件处理
		# self.del_affirm.Bind(wx.EVT_BUTTON,self.DelAffirm)
		# #################################################################################
		# #创建静态框
		# sb_del = wx.StaticBox(self.pnl,label="请输入需要删除的论文的ID")
		# #创建水平方向box布局管理器
		# hsbox_del = wx.StaticBoxSizer(sb_del,wx.HORIZONTAL)
		# #添加到hsbox_name布局管理器
		# hsbox_del.Add(self.del_id,0,wx.EXPAND | wx.BOTTOM,5)
		# #添加到vsbox_show_operation布局管理器
		# self.vsbox_show_operation.Add(hsbox_del,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)
		# self.vsbox_show_operation.Add(self.del_affirm,0,wx.CENTER | wx.TOP | wx.FIXED_MINSIZE,5)

	# def ClickButton(self,event):
		# source_id = event.GetId()
		# if source_id == 10:
			# print("查询操作!")
			# inquire_button = InquireOp(None,title="论文管理系统",size=(1024,668))
			# inquire_button.Show()
			# self.Close(True)			
		# elif source_id == 11:
			# print("添加操作!")
			# add_button = AddOp(None,title="论文管理系统",size=(1024,668))
			# add_button.Show()
			# self.Close(True)						
		# elif source_id == 12:
			# pass		
		# elif source_id == 13:
			# self.Close(True)

	# def DelAffirm(self,event):
		# #连接student_db数据库
		# op = Sql_operation("student_db")

		# del_id = self.del_id.GetValue()
		# print(del_id)
		# np = op.Del(int(del_id))
		
		# del_button = DelOp(None,title="论文管理系统",size=(1024,668))
		# del_button.Show()
		# self.Close(True)
if __name__ == '__main__':
	app = wx.App()
	operation = UserOperation(None,title="论文管理系统(用户)",size=(1024,668))
	#login = UserLogin(None,title="论文管理系统",size=(1024,668))
	operation.Show()
	app.MainLoop()





四、后记
希望能够通过

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2021-1-25 13:14
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 10:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表