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 算法 排序实现快速排序
Jun 05 Python
python3生成随机数实例
Oct 20 Python
Python列表计数及插入实例
Dec 17 Python
Python使用matplotlib绘制动画的方法
May 20 Python
Apache如何部署django项目
May 21 Python
python+opencv实现阈值分割
Dec 26 Python
Python学习笔记之变量、自定义函数用法示例
May 28 Python
python SocketServer源码深入解读
Sep 17 Python
python同义词替换的实现(jieba分词)
Jan 21 Python
Python检测端口IP字符串是否合法
Jun 05 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 09 Python
一篇文章弄懂Python中的内建函数
Aug 07 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 UTF-8、Unicode和BOM问题
2010/05/18 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
vue登录注册实例详解
2019/09/14 Javascript
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
python opencv之SURF算法示例
2018/02/24 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
英国水族馆和池塘用品购物网站:Warehouse Aquatics
2019/08/29 全球购物
超市开业庆典策划方案
2014/05/14 职场文书
青年文明号口号
2014/06/17 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
防止web项目中的SQL注入
2021/12/06 MySQL