EasyGui项目
limodou
limodou@gmail.com
EasyGui项目
[any material that should appear in print but not on the slide]
一、项目背景
- NewEdit萌发思想
- 数据库处理中大量使用对话框自动生成
- 从EasyWizard到EasyGui
[any material that should appear in print but not on the slide]
1.1 NewEdit中思想的萌发
- otter项目中用到了模板引发Meteor
- 讨论到使用NewEdit进行用户数据的录入与模板相结合
[any material that should appear in print but not on the slide]
1.2 对话框的自动生成
- 数据库处理中有许多的表
- 每个表都需要增加和修改处理
- 开发了自动对话框生成功能
[any material that should appear in print but not on the slide]
1.2 EasyWizard到EasyGui
- 原先是想实现Wizard功能,结合Meteor来生成代码框架
- 开发出Wizard自动生成代码
- 发现相同的模式还可以应用在其它类似的地方,如:对话框。
- 体会到数据录入的特殊性
[any material that should appear in print but not on the slide]
二、EasyGui的功能
- 配置信息->界面->录入用户数据
- 配置信息+模板->代码框架
- 数据的保存
- 与其它应用的结合
- 简单wxPython框架代码生成
- 自定义录入元件
[any material that should appear in print but not on the slide]
2.1 配置信息->界面->录入用户数据
- 配置信息以数据为中心,可以方便配置并灵活改变
- Wizard :: Notebook :: Dialog的转化
- 自动界面生成,套用一种模型
- 最终得到一个字典数据
[any material that should appear in print but not on the slide]
2.2 配置信息+模板->代码框架
- 配置信息->用户字典数据
- Meteor模板模块->处理字典数据
- 生成复杂的代码框架
[any material that should appear in print but not on the slide]
2.3 数据的保存
- 实现数据的重用
- pickle格式
- obj2ini格式
- 转换为其它格式
[any material that should appear in print but not on the slide]
2.4 与其它应用的结合
- 可以作为命令行程序的图形录入接口
- 可以与其它的wxPython GUI程序相结合,作为一个方便的图形库
[any material that should appear in print but not on the slide]
2.5 简单wxPython框架代码生成
- 可以生成简单的带有菜单、工具条的wxPython程序
- 增加其它的应用模板
[any material that should appear in print but not on the slide]
2.6 自定义录入元件
[any material that should appear in print but not on the slide]
三、经验积累与快速开发
- 经验积累的几种形式
- 理想的经验积累的方式
- 为什么要快速开发
- 理想的快速开发
- EasyGui的快速开发体验
- EasyGui的未来发展
[any material that should appear in print but not on the slide]
3.1 经验积累的几种形式
- 个人经验谈
- 写文章
- 保留代码、进行适当的整理
- 转变成代码模板或框架(并不是新想法)
[any material that should appear in print but not on the slide]
3.2 理想的经验积累的方式
[any material that should appear in print but not on the slide]
3.3 为什么要快速开发
- 可以降低初学者的学习门槛
- 可以提高老鸟的生产效率
- 可以充分发挥Python的能力
[any material that should appear in print but not on the slide]
3.4 理想的快速开发
- 以数据为中心
- 提供可用的一个或多个模型
- 代码框架
- 提供可用的命令行或GUI生成工具
[any material that should appear in print but not on the slide]
3.5 EasyGui的快速开发体验
- 以配置为中心
- 百花齐放不如一花独秀
- 命令行工具,一条命令胜过10行代码
- 模板处理功能
[any material that should appear in print but not on the slide]
3.6 EasyGui的未来发展
[any material that should appear in print but not on the slide]