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 服务 ...
随机推荐
- 【安卓面试题】简述一下Android系统的架构?
安卓系统的架构分为四层:应用程序层,应用框架层,系统框架层和内核层. 应用程序层:开发者编写的供用户使用的应用 应用框架层:开发者构建应用程序可能用到的API, 例如ActivityManager 系 ...
- page61-将二分查找重写为一段面向对象的程序
1 将二分查找重写为一段面向对象的程序 (用于在整数集合中进行查找的一种抽象数据类型) public class StaticSETofInts [API] StaticSETofInts(int[] ...
- WPF ScrollViewer(滚动条) 自定义样式表制作 再发一套样式 细节优化
艾尼路 出的效果图 本人嵌套 WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂 WPF ScrollViewer(滚动条) 自定义样式表制作 (改良+美化) 源代码
- OpenShare常见问题及解答
OpenShare常见问题及回答: Q:OpenShare可以整合SAP么? A:当然可以,OpenShare是真正完全开放的产品,但要进行二次开发,事实上我们帮我们大部分的客户都整合了SAP,包括数 ...
- javascript事件代理(委托)
之前有接触过事件代理,但是印象并不深刻.这次记下来加强印象. 用个大家比较常见的代码举例子: html dom结构: <ul id="ul1"> <li>0 ...
- YuXi-钰玺博客
本博客将与YuXi-钰玺博客进行同步更新! YuXi-钰玺博客:www.studenty.cn
- miniui MVC datagrid数据绑定
数据绑定 Default.cshtml <div id="datagrid1" class="mini-datagrid" style="wid ...
- 根据ie浏览器不同的类别选择不同的css
如果是IE浏览器则选择all-ie-only.css <!--[if IE]> <link rel="stylesheet" type="text/cs ...
- 自定义View(一)-ViewGroup实现优酷菜单
自定义View的第一个学习案例 ViewGroup是自动以View中比较常用也比较简单的一种方式,通过组合现有的UI控件,绘制出一个全新的View 效果如下: 主类实现如下: package com. ...
- 正确理解SQL Server的许可证(转)
今天在论坛上看到有人讨论如果使用SQL Server作为SEPM的后台数据库,需要多少个CAL的问题: If I do have to use SQL Server what type of li ...