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格式方法分享
Nov 07 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
Python实现Dijkstra算法
Oct 17 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
Feb 19 Python
python3使用GUI统计代码量
Sep 18 Python
Python函数的默认参数设计示例详解
Dec 01 Python
python实现猜单词游戏
May 22 Python
详解Python 循环嵌套
Jul 09 Python
pycharm-professional-2020.1下载与激活的教程
Sep 21 Python
Pandas替换及部分替换(replace)实现流程详解
Oct 12 Python
利用Selenium添加cookie实现自动登录的示例代码(fofa)
May 08 Python
浅谈Python数学建模之固定费用问题
Jun 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
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
风格模板初级不完全修改教程
2006/10/09 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
Views rows style模板重写代码
2011/05/16 PHP
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
2019/05/21 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
py中的目录与文件判别代码
2008/07/16 Python
python实现socket端口重定向示例
2014/02/10 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
通过PYTHON来实现图像分割详解
2019/06/26 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
python机器学习实现决策树
2019/11/11 Python
python实现的分层随机抽样案例
2020/02/25 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
上级检查欢迎词
2014/01/18 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
党员个人总结范文
2015/02/14 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
56句经典英文座右铭
2019/08/09 职场文书