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 服务 ...
随机推荐
- Hive编程(影印版)
<Hive编程(影印版)> 基本信息 原书名:Programming Hive 作者: Edward Capriolo Dean Wampler Jason Rutherglen 出版社: ...
- 考上好大学,然后进入IT行业是穷人孩子晋级中产的唯一出路?
今天看到一篇不错的文章,内容如下: 这个问题来自于我在知乎上参与的一个热贴讨论,作为一个10年的老码农,创业公司呆过,二.三流的互联网公司混过,BAT也遛了一趟,如今再次回归创业,经历算得上狗血了,看 ...
- C#自定义时间显示格式
string time = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); 下面是常见的一些日期时间显示格式 标准的For ...
- JavaScript之六种排序法
1.冒泡排序循环的最大值从length递减每次循环只能排好最后一个,然后递减到第一个 function bubbleSort(){ var changedData = new Array(); var ...
- java如何准确的读取多音字
java如何准确的读取多音字 java准确读取多音字的方法,多音字的识别一直是一个问题,笔者结合了很多不同的读取方法,完成了这个扩展的帮助类. 首先,下载java读取拼音的jar(pinyin4j-2 ...
- 通过js判断手机访问跳转到手机站
第一种方法: <script> ){ //pc //window.location.href="电脑网址"; }else{ //shouji window.locati ...
- MYSQL基础01(新增,修改,删除)
首先说明一下,本人之前一直都是用MSSQL,由于工作原因,每天写上百条sql语句,并持续了几年;由于换了工作目前主要接触的MYSQL;所以现在开始学习MYSQL. 我的学习计划很简单,我在MSSQL使 ...
- 何为BFC
BFC 定义 BFC(Block formatting context)直译为"块级格式化上下⽂文".它是⼀一个独⽴立的渲染区域,只有Block-level box参 与, 它规定 ...
- CSS3 resize属性 调整div大小
resize 用户可调整div大小 IE不支持 none 不可调整元素尺寸 both 可调整宽度高度 horizontal 可调整宽度 vertical 可调整高度 注意:如果属性生效,必须设置元素 ...
- Eclipse 快捷键 快捷输入
快捷键: 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如appli ...