Python GUI编程实践
看完了《python编程实践》对Python的基本语法有了一定的了解,加上认识到python在图形用户界面和数据库支持方面快捷,遂决定动手实践一番。
因为是刚接触Python,对于基本的数据结构tuple,list,set和dictionary认识尚浅,了解到在Python里OO的思想跟在C++和Java里相差无几。又因为手机里面有个andriod应用iustc,它集成了在科大的校车查询、教室查询、科大地图、成绩管理和客户端ustcbbs,虽然小但还算五脏俱全,遂决定从最简单的校车查询入手,用Python写个简单的校车查询功能。
首先从官网弄到校车运行时间表,考虑到学校的四个校区,时间表分为直线和环线,同时考虑是否为节假日,班次安排也有相应变化。
针对实际的校车查询问题简化了数据表数据处理方法,但为了不失一般性还是老老实实考虑了某些限制和业务逻辑,当然对于极端的班车发车数据进行了剔除(浪费时间)。
考虑基本的UI界面为选择出发地,选择目的地,选择是否为节假日,选择是否从当前时间开始查询。注意到iustc里也对查询进行了简化,估计它也对极端的发车时间进行了处理,查询结果应该不是100%正确。并且在出发方式上考虑到北区太小去的人少,iustc直接忽略了相关的选择(只剩东、南、北互相作为出发地目的地共6种可供选择),在结果的显示上它也采用了主要类似时间+直线(或者环线)+具体途径地点(西区->北区->东区)的方式。
最终效果如下:

其中:
extractData.py为从多个时间表.txt文件中按照指定格式提取时间班次地点数据。
scheduleDB.py为将具体提取的数据写入数据库文件schedule.db。
schoolbusschedule.py则为最终的界面显示和查询显示功能实现。
用到Python基本语法,用到基本的数据库创建、插入数据和查询数据,文件基本读写,格式化输出,还有Python的Tkinter编程(具体为Label、OptionMenu、Checkbutton、Listbox控件,以及布局和事件处理,属性设置)。
没用到OO思想,方法封装也基本等于没有。
总结:Python各种包封装的很好,实践简单的逻辑功能相对比较方便。需要继续深入。
改进:其中在结果的呈现时没有考虑加入途径地点,可以改进数据处理方法(直接分四种情况,从东~西、南、北等)。OptionMenu实现下拉框略显丑陋,不过这些不是重点。
Python GUI编程实践的更多相关文章
- Python GUI编程各种实现的对比
Python GUI编程各种实现的对比 从 Python 语言的诞生之日起,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编 ...
- Python gui编程pyQt5安装步骤t
Python gui编程pyQt5安装步骤 pip install PyQt5 Pip3 install PyQt5 https://riverbankco ...
- Python gui编程pyQt5安装步骤
Python gui编程pyQt5安装步骤 =============================== -m PyQt5.uic.pyuic $FileName$ -o $FileNameWit ...
- Python GUI 编程
Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...
- Python GUI编程(Tkinter) windows界面开发
Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py 1 #!C:\Python27\python.e ...
- Python GUI编程--Tkinter
今天看到了GUI编程,书上推荐用wxPython,去官网上看了看,发现Windows的最高支持到2.7,我用的是3.4版本,咋办,用自带的库--Tkinter呗,它是Python的默认GUI库,几乎是 ...
- python GUI编程tkinter示例之目录树遍历工具
摘录 python核心编程 本节我们将展示一个中级的tkinter应用实例,这个应用是一个目录树遍历工具:它会从当前目录开始,提供一个文件列表,双击列表中任意的其他目录,就会使得工具切换到新目录中,用 ...
- Python -- Gui编程 -- Tkinter的使用 -- 基本控件
1.按钮 tkBtton.py import tkinter root = tkinter.Tk() btn1 = tkinter.Button(root, anchor=tkinter.E,\ te ...
- python CGI 编程实践
文章更新于:2020-03-05 注1:安装 python 参见: python 的安装使用和基本语法 注2:配置 web 环境参见: Windows&linux使用集成环境搭建 web 服务 ...
随机推荐
- struts1.3设置编码三种方法
本文所写涉及的struts的版本是1.3x. 一.改写struts的ActionServlet. 重写process()方法: 配置相应的web.xml文件 三.通过Chain来处理: 使用cha ...
- vagrant WARNING: You are not using an encrypted connection
开发环境:vagrant 1.7 + centos 6(i386) + LAMP Drupal版本:7.53 在vagrant LAMP开发环境中,给Druapl安装模块时,显示WARNING: Yo ...
- ORACLE之表
本文章中的表在以后的例子中会用到. 首先有t_fn_person和t_fn_dept表. ) primary key not null, person_code ) not null, person_ ...
- JavaScript--模块化编程(笔记)
一直对JS都是一知半解,最近遇到这方面问题,所以在网上学习了一下,现在还没有完全明白,先贴出笔记; 第一章 JavaScript模块化编程(一):模块的写法 一 原始写法 // 模块就是实现特定功能的 ...
- jQuery 删除或是清空某个HTML元素示例
jQuery使用下面两个方法来删除或是清空某个HTML元素. remove() – 删除指定的元素(包括其子元素)empty() – 清空指定元素的子元素 1.remove() <!DOCTY ...
- jquery设置元素readonly和disabled(checkbox只读)
jquery api中提供了对元素应用disabled和readonly属性的方法:1,readonly 代码示例: $('input').attr("readonly",&quo ...
- 第十篇、让UIScrollView的滚动条常显
UIScrollView滚动条一直显示 1.我们知道滚动条是一个UIImageView, 滚动条隐藏是因为设置了alpha属性为0, 所有我们写一个UIImageView的分类 #define noD ...
- 20141201--JS Window
一.window.screen 包含有关用户屏幕的信息. window.screen 对象在编写时可以不使用 window 这个前缀. 一些属性: screen.availWidth - 可用的屏幕宽 ...
- 7款超具个性的HTML5播放器
这篇文章我们要分享一些很有个性的HTML5音乐播放器和视频播放器,它们都具有播放器的大部分功能,并以HTML5和JavaScript实现.这些HTML5播放器有着非常漂亮的外观,很多你都无需自己重新定 ...
- Codevs 1205 单词翻转
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Description 给出一个英语句子,希望你把句子里的单词顺序都翻转过来 输入 ...