Python实现GUI学生信息管理系统


Posted in Python onApril 05, 2020

本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下

项目环境: 

软件环境: 

                  OS:RedHat6.3
                  Lib:Pygtk
                  Language:Python
                  Support tool:Glade3

项目简述:

①Glade3设计用户的登录窗口,功能主窗口
②通过Gtk.Builder初始化,载入界面
③在Mysql.py文件中实现Python操作数据库。
④在stuManager.py中实现学生信息的查询,删除,修改,终端登录,图形统计等功能
⑤在Glade中定义函数触发信号,实现功能的连接。

项目测试:

①登录窗口

Python实现GUI学生信息管理系统

②主窗口

Python实现GUI学生信息管理系统

③删除信息

Python实现GUI学生信息管理系统

④修改信息

Python实现GUI学生信息管理系统

⑤登录终端

Python实现GUI学生信息管理系统

⑥学生成绩

Python实现GUI学生信息管理系统

⑦图形统计(没做好)

⑧查找信息

Python实现GUI学生信息管理系统

部分代码:

Terminal.py

#-*- coding=utf-8 -*- 
#!/usr/bin/python 
##################################################################### 
## Filename: terminal.py 
##  
## Copyright (C) 2014.6 
## Author: TangMeiHao@760209035@qq.com 
##  
## Description: python + pygtk(gtk)实现学生信息管理系统 
##  
###################################################################### 
 
import vte 
import gtk 
 
 
class MyTerm(): 
 def __init__(self): 
 """初始化一个term对象""" 
 self.terminal=vte.Terminal() 
 self.terminal.connect("child-exited",lambda term: self.vte_exit()) 
 self.terminal.fork_command() 
 self.terminal.set_size(10,20) 
 
 def vte_exit(self): 
 """当terminal退出时,直接重新产生一个terminal,并clear初始化""" 
 self.terminal.fork_command() 
 self.terminal.feed_child("clear\n") 
 
 def vte_message(self): 
 pass

Stu_Sys.py

#!/usr/bin/python 
#-*- coding:utf-8 -*- 
###################################################################### 
## Filename: Stu_Sys.py 
##  
## Copyright (C) 2014.6 
## Author: TangMeiHao@760209035@qq.com 
##  
## Description: python + pygtk(gtk)实现学生信息管理系统 
##  
###################################################################### 
 
import gtk 
import gtk.glade 
from terminal import * 
import MySQLdb 
 
#系统类 
class system: 
 #定义数据库的变量 
 host='localhost' 
 user='root' 
 passwd='aixocm' 
 db='student' 
 port=3306 
 charset='utf8' 
 
 def __init__(self): 
 # 定义所使用的glade文件 
 self.glade_file = "Student.glade" 
 self.glade = gtk.Builder() 
 self.glade.add_from_file(self.glade_file) 
 self.glade.connect_signals(self) 
 self.glade.get_object("window1").set_size_request(800,500) 
 self.glade.get_object("window1").set_position(gtk.WIN_POS_CENTER) 
 
 #从xml文件中读取数据,并链接必要的信号 
 for widget in self.glade.get_objects(): 
 if issubclass(type(widget),gtk.Buildable):name=gtk.Buildable.get_name(widget) 
 setattr(self,name,widget) 
 
 #创建一个Terminal的实例,并且添加到登录管理的标签页中 
 self.myterm=MyTerm() 
 self.glade.get_object("vbox2").add(self.myterm.terminal) 
 
 #登录窗口 
 self.dialog3.run() 
 self.dialog3.set_size_request(300,260) 
 self.dialog3.set_position(gtk.WIN_POS_CENTER) 
 
 #登录窗口登录,验证管理员用户,密码. 
 def on_login_click(self,widget,data=None): 
 try: 
 conn=MySQLdb.connect(host=system.host,user=system.user,passwd=system.passwd, 
 db=system.db,port=system.port,charset=system.charset) 
 cur=conn.cursor() 
 manager_name=cur.execute('select manager_name from manager') 
 name=cur.fetchmany(1) 
 manager_passwd=cur.execute('select manager_passwd from manager') 
 
  
 text16=self.entry16.get_text() 
 text17=self.entry17.get_text() 
 
 if text16!=name: 
 #验证成功,关闭登录窗口 
 self.dialog3.destroy() 
 #显示窗口 
 self.glade.get_object("window1").show_all() 
 
 else: 
 #提示框 
 login_waring='亲爱的管理员,你登录的用户或密码误' 
 self.dialog1buffer=self.textview3.get_buffer() 
 self.dialog1buffer.set_text(str(login_waring)) 
 self.dialog1.set_size_request(300,260) 
 self.dialog1.set_position(gtk.WIN_POS_CENTER) 
 self.dialog1.run() 
 
 except MySQLdb.Error,e: 
 print "Mysql Error %d: %s" % (e.args[0], e.args[1]) 
...........

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现划词翻译
Apr 23 Python
利用numpy和pandas处理csv文件中的时间方法
Apr 19 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
Django model序列化为json的方法示例
Oct 16 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
python实现二分类的卡方分箱示例
Nov 22 Python
使用Keras画神经网络准确性图教程
Jun 15 Python
django rest framework使用django-filter用法
Jul 15 Python
关于python scrapy中添加cookie踩坑记录
Nov 17 Python
Python urllib3软件包的使用说明
Nov 18 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 #Python
python版学生管理系统
Jan 10 #Python
python实现用户管理系统
Jan 10 #Python
python的Tqdm模块的使用
Jan 10 #Python
python3.6 实现AES加密的示例(pyCryptodome)
Jan 10 #Python
Python设计模式之MVC模式简单示例
Jan 10 #Python
Python设计模式之命令模式简单示例
Jan 10 #Python
You might like
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
Yii分页用法实例详解
2014/12/04 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
Python理解递归的方法总结
2019/01/28 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
如何理解委托
2012/01/06 面试题
2014年教研活动总结范文
2014/04/26 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
街道社区活动报告
2015/02/05 职场文书
初中班长竞选稿
2015/11/20 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
使用python绘制分组对比柱状图
2022/04/21 Python
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript