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判断windows系统是32位还是64位的方法
May 11 Python
新手如何快速入门Python(菜鸟必看篇)
Jun 10 Python
Python3.5 创建文件的简单实例
Apr 26 Python
python中使用print输出中文的方法
Jul 16 Python
Python数据集切分实例
Dec 08 Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 Python
django 实现简单的插入视频
Apr 07 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
Jun 04 Python
Django rest framework如何自定义用户表
Jun 09 Python
Python实现生成bmp图像的方法
Jun 13 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学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
js实现微博发布小功能
2017/01/12 Javascript
layui分页效果实现代码
2017/05/19 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
大学生考试作弊检讨书
2014/09/21 职场文书
辞职信怎么写?
2019/05/21 职场文书
DE1107机评
2022/04/05 无线电