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网络编程学习笔记(六):Web客户端访问
Jun 09 Python
Python实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
python操作excel的方法
Aug 16 Python
详解python分布式进程
Oct 08 Python
python爬虫之快速对js内容进行破解
Jul 09 Python
python找出因数与质因数的方法
Jul 25 Python
python线程的几种创建方式详解
Aug 29 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 Python
python GUI计算器的实现
Oct 09 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
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
php解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现数据库编程方法详解
2015/06/09 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Django框架模板介绍
2019/01/15 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
感恩节活动方案
2014/01/27 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
领班岗位职责范文
2014/02/06 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
六查六看心得体会
2014/10/14 职场文书
2014年防汛工作总结
2014/12/08 职场文书
个人工作保证书
2015/02/28 职场文书
返乡农民工证明
2015/06/24 职场文书