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通过正则表达式选取callback的方法
Jul 18 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
python3.6连接MySQL和表的创建与删除实例代码
Dec 28 Python
Python的UTC时间转换讲解
Feb 26 Python
Python pandas DataFrame操作的实现代码
Jun 21 Python
Python接口自动化判断元素原理解析
Feb 24 Python
解决python虚拟环境切换无效的问题
Apr 30 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
jupyter 添加不同内核的操作
Feb 06 Python
python实现的web监控系统
Apr 27 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 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在字符串中查找另一个字符串
2008/11/19 PHP
PHP 程序员应该使用的10个组件
2009/10/31 PHP
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
浅析php单例模式
2014/11/25 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
全面了解js中的script标签
2016/07/04 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
Python下载懒人图库JavaScript特效
2015/05/28 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
高三毕业寄语
2014/04/10 职场文书
保护环境倡议书范文
2014/05/13 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
药品销售员2015年终工作总结
2015/10/22 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL