交互-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')