本帖最后由 davidx 于 2013-4-18 21:49 编辑
四月份, 我们在西电举办了第一届GDG西安西电俱乐部编程马拉松比赛. 本次比赛, 我们一共有6支队伍完成了比赛, 并展示了作品. 接下来的一段时间, 我们会一个一个给大家展示我们的童鞋们辛苦做出来的作品.
这次, 我们将给大家介绍的是: crazytyper. 很让我惊讶的是, 作者可以在3天的时间内, 从头开始开发这个作品, 并且顺利完成, 同时, 在展示的时候, 除了一个按钮没有做, 我们没有看到这个软件有任何明显的bug, 实在是难能可贵.
简介: crazytyper是利用python语言以及wxpython ui库写成的一款**英文练习打字软件**,目的是练习校准指法以及提高打字的正确率和速度,面向人群为刚接触计算机的儿童学生,或急需提高打字速度的计算机专业人员。
技术细节: crazytpyer的主界面主要又功能按钮和输入框组成。 1.输入框 * 使用了wx.TextCtrl作为基类,定义为只读,检测键盘敲击引发的wx.EVT_CHAR事件,利用事件的GetKeyCode()方法与当前光标位的字符进行比对。随后光标位后移。 * 由于原有的wx.TextCtrl对鼠标的事件有默认的相应,影响输入框的正常运行,遂将wx.EVT_LEFT_DOWN 和 wx.EVT_RIGHT_DOWN事件处理函数绑定为pass 2.按钮 * 指法图示:目前只是显示一张打字指法示意图。 * 选择教程:目前还没有绑定行为,以后会制作不同难度的素材,制作循序渐进的教程。 * 自定义练习:利用wx.FileDialog文件选择组件,自定义选择素材,所选择的素材经过mod_InitFile的抓换,将'\n'变成'↲\n',是为了将空格和回车区分开。 * 小游戏:目前还没有开发,准备后期使用pygame开发。 * 历史记录:每一次打字完成后,都会将正确率和平均速度存入log文件里,利用wx.lib.plot进行绘图。显示点图和折线图,观察进步情况。
对项目的一些改进建议:
1. 一般来说, python的module名字, 都是小写的, 也不常用_的 2. 更改一下目录结构, 变成libs+bin的方式, 即所有的module, 函数, 类等, 都放进一个package里, 外面只放一个调用程序. 这样的好处是, 方便打包. 3. 按照linux的目录结构, 将对应的文件放入合适的位置, 比如图片文件, 比如界面的xml文件 4. 上面所有的都改进了后, 可以考虑打包成linux的软件包, 比如rpm, deb等
下一次, 我们将为大家介绍另一个作品: FaceCome.
|