交互-GUI 版日记本软件
本周整体任务概述:
在上周开发基础上, 完成 极简交互式日记的桌面版本
需求如下:
* 每次运行时合理的打印出过往的所有日记
* 一次接收输入一行日记
* 保存为本地文件
* 时限: 1wd4~2wd3
* 发布: 发布到各自仓库的 _src/om2py2w/2wex0/ 目录中
指标:
* 包含软件使用说明书: README.md
* 能令其它学员根据说明书,运行系统,完成所有功能
备选的:
* 如果有余力,或是对桌面软件没有兴趣
* 请尝试相同的功能要求在 ipython notebook 中实现
* 用网页的交互来替代桌面软件的感觉?
需求分析:
1. 需要在上周实现的功能上gui化
2. 运行软件读取本地日记文件,显示过往的日记内容
3. 每次输入一行日记,并在过往的日记内容下追加显示
4. 程序退出时保存更新日记
5. 支持中文输入和显示
6. 点击退出按钮退出程序
日记本使用到GUI知识点
1. Tkinter是python Gui编程的默认库,它是python版的tk接口实现,需要用到的组件分别有:
* Label:用作显示日记内容
* Button: 用作退出按钮
2. 如何使用Tkinter
> 要使用需要导入
> 导入的方式有```import Tkinter```和```from Tkinter import *```
3. 如何获取输入框entry的值,这个问题实际上比较简单,直接调用entry.get()就可以了.
4. 如果说获取entry的值比较容易,那么为entry绑定事件就花了比较多的时间去研究了.
* 一开始想通过将entry组件绑定到StringVar实例,然后通过一个变量来获取entry的值.通过几次尝试没有成功.
* 继而为entry绑定了```<RETURN>```(按回车)事件同时调用函数来实时获取用户输入的内容
5. 中文显示问题
* 一切文件使用utf-8的编码格式
> #!/usr/bin/python
> # -*- coding: utf-8 -*-
* 在entry文本框输入中文的问题业困扰了很久,最后通过导入**import sys** 并且设置默认编码为utf-8后解决不能使用中文,但是mac下不能用输入法输入中文的问题始终找不到方案.
> reload(sys)
> sys.setdefaultencoding('utf-8')