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编程中JSON模块的使用
Oct 15 Python
Python的Flask开发框架简单上手笔记
Nov 16 Python
使用简单工厂模式来进行Python的设计模式编程
Mar 01 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
python+selenium+autoit实现文件上传功能
Aug 23 Python
python爬虫基本知识
Mar 05 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
May 27 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
python实现批量转换图片为黑白
Jun 16 Python
python代码能做成软件吗
Jul 24 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 Python
Python装饰器的练习题
Nov 23 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扩展模块memcached长连接使用方法分析
2014/12/24 PHP
php实现留言板功能
2017/03/05 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
img标签中onerror用法
2009/08/13 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
python避免死锁方法实例分析
2015/06/04 Python
你真的了解Python的random模块吗?
2017/12/12 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
环保建议书100字
2014/05/14 职场文书
检讨书怎么写
2015/01/23 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
详解Java实现数据结构之并查集
2021/06/23 Java/Android