上代码:

#coding:utf-8from Tkinter import * ;
import os;#查看日记
def showDiary(event):#print listBox.curselection();items = map(int, listBox.curselection()); # 获取当前被选中的项title =  listBox.get(listBox.curselection());showTitle = title[:-4]; # 从倒数第四个字符往前截取取得日记标题textVar.set(showTitle);fileObj = open(title,"r+");content = fileObj.read();text.delete("0.0", "end"); #清空if os.name == 'nt':content = content.decode("gbk");text.insert("end",content); #插入最后label.config(text = u"查看日记->"+showTitle);listBox.pack_forget();entry.pack();text.pack();saveBtn.pack(side=LEFT,anchor='sw');#日记列表
def read():listBox.delete(0,END);# 清空listBox 从第一个到END(最后一个)删除了dir = os.getcwd(); # 获取当前目录list = os.listdir(dir);showText= "查看日记";if len(list) == 0:showText += "(日记本是空的)";for item in list:if os.name == "nt":listBox.insert(0,item.decode('gbk')); #插入到第一个之前else:listBox.insert(0,item); #插入到第一个之前label.config(text = showText);listBox.bind("<Double-Button-1>",showDiary); # 绑定双击事件 查看日记listBox.pack(); # 显示日记列表entry.pack_forget(); # 隐藏entrytext.pack_forget(); # 隐藏textsaveBtn.pack_forget();
#保存日记
def save():title = textVar.get() + ".txt"; #获取标题content = text.get("0.0","end"); #获取内容if(title != ".txt"):fileObj= open(title,"wb");if os.name == "nt":#print u"Windows系统";fileObj.write(content.encode("gbk"));else:#print u"Linux系统";fileObj.write(content);fileObj.close();label.config(text = "以保存");else:label.config(text = "请输入标题");#写日记
def write():textVar.set(""); # 初始化输入框值text.delete("0.0","end"); #清空textlabel.config(text = "写日记");listBox.pack_forget(); # 隐藏listBoxentry.pack(); # 显示entrytext.pack(); # 显示textsaveBtn.pack(side=LEFT,anchor='sw');
#创建日记文件夹
def initDiary():dir = os.getcwd(); # 得到当前工作的目录list = os.listdir(dir); # 取得当前目录下所有的文件和文件夹haveDiary = False;for item in list:if item == "diary":haveDiary = True;if haveDiary ==  False:os.mkdir("diary"); # 创建目录os.chdir("./diary"); # 切换工作空间initDiary();root = Tk();
root.geometry("500x400");
root.title("程序猿日记本");saveBtn = Button(root,text="保存",command =  save); # command 表示点击的时候执行save
#saveBtn.pack(side=LEFT,anchor='sw');  # 表示吧按钮设置在左下未知 side有四个值TOP,BOTTOM,LEFT,RIGHT 默认TOP quitBtn = Button(root,text="退出", command=quit); # command表示点击会退出方法
quitBtn.pack(side=RIGHT,anchor='se'); #  anchor表示对齐方式 sw(southwest)西南方向  # 一共9个值 分别n(北),s(南),w(西),e(东),nw(西北),sw(西南),se(东南),ne(东北),center(中间) 默认centerwriteBtn = Button(root,text="写日记",command = write); # command表示点击时会执行的方法
writeBtn.pack(side=RIGHT,anchor='se');readBtn = Button(root,text="看日记", command=read);
readBtn.pack(side=RIGHT,anchor='se');textVar = StringVar(); # StringVar 是一个字符串变量类型
# Entry 可以类比html 的input(type="text")
entry = Entry(root,textvariable = textVar); # Entry是一个简单的输入空间 ,textvarible 表示文本框中的值 textvariable =textVar是为了方便我们后期对标题的操作text =Text(root); #Text是用来显示多行文本(可以类比html textare)listBox = Listbox(root, height = 300);label = Label(root);
label.pack();root.mainloop();

python2.7实现简单日记本,兼容windows和linux相关推荐

  1. java 访问linux 根目录_paip兼容windows与linux的java类根目录路径的方法

    paip兼容windows与linux的java类根目录路径的方法 1.只有 pathx.class.getResource("")或者pathx.class.getResourc ...

  2. java 访问linux 根目录_paip兼容windows与linux的java类根目录路径的方法 | 学步园

    paip兼容windows与linux的java类根目录路径的方法 1.只有 pathx.class.getResource("")或者pathx.class.getResourc ...

  3. [C] 跨平台使用Intrinsic函数范例1——使用SSE、AVX指令集 处理 单精度浮点数组求和(支持vc、gcc,兼容Windows、Linux、Mac)...

    作者:zyl910. 本文面对对SSE等SIMD指令集有一定基础的读者,以单精度浮点数组求和为例演示了如何跨平台使用SSE.AVX指令集.因使用了stdint.zintrin.ccpuid这三个模块, ...

  4. java -cp 引用多个包_Java -cp 命令行引用多个jar包的简单写法(Windows、Linux)

    1.Windows下用法 在Windows上,可以使用 java your-jar-lib-fold/* your-main-class your-jar-lib-fold为存放一堆jar文件的路径. ...

  5. [C] zintrin.h : 智能引入intrinsic函数。支持VC、GCC,兼容Windows、Linux、Mac OS X

    作者:zyl910. 现在很多编译器支持intrinsic函数,这给编写SSE等SIMD代码带来了方便.但是各个编译器略有差异,于是我编写了zintrin.h,智能引入intrinsic函数. 一.各 ...

  6. 使用JavaCV对视频截取图片,生成视频JPG封面图和GIF动态图(可以兼容windows和linux,无需安装ffmpeg软件)...

    首先要是Maven项目,然后导入JavaCV的相关jar包,即在pom.xml文件加入以下配置: <dependency><groupId>org.bytedeco</g ...

  7. linux php目录是否存在,PHP判断文件或者目录是否可写,兼容windows/linux系统

    在PHP中,可用is_writable()函数来判断一个 文件/目录 是否可写,用是否可生成文件的方式判断目录是否可写:网上的一些代码大多数能判断linux系统,但windows服务器下判断不准确. ...

  8. python windows和linux路径_python复制文件,路径不存在问题(Windows和linux路径分隔符不统一)...

    问题: python脚本涉及到复制文件,而我们需要兼容Windows.linux和mac环境 (Windows和linux的路径分隔符不同:通过os.path.sep查看分隔符) 如果用[路径名+os ...

  9. java多级目录文件是否存在_Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析)...

    兼容windows和linux. 分析: 在windows下路径有以下表示方式: (标准)D:\test\1.txt (不标准,参考linux)D:/test/1.txt 然后在java中,尤其使用F ...

最新文章

  1. UTF-8 CPP的使用
  2. java jsch_java使用JSCH实现SFTP文件管理
  3. windows下检测网站是否正常运行并自动重启服务
  4. 纪念品分组pascal程序
  5. Delphi数据类型
  6. 网络协议 8 - TCP协议(上):性恶就要套路深
  7. 【线段树】GSS5 - Can you answer these queries V(luogu-SPOJ 2916)
  8. 基于深度学习的信息抽取技术
  9. element手机验证格式_Laravel 自定义封装表单验证类
  10. 差分隐私 python_[宜配屋]听图阁
  11. 欧拉函数、中国剩余定理背诵用模板
  12. audiojs--跨浏览器的HTML音频播放器(可自定义样式)
  13. python循环三次跳出循环_Python3 跳出多重循环 for...else...
  14. 5加载stm32 keil_STM32在SRAM、FLASH中调试代码的配置方法(附详细步骤)
  15. Caused by: java.lang.NoSuchMethodException: init [class android.content.Context, interface andr解决
  16. 全渠道数字化营销平台
  17. JavaSE-接口简单介绍
  18. deepin linux live cd,Deepin Live cd修复引导
  19. Java WebSocket编程与网页简易聊天室
  20. win10,win11 下部署Vicuna-7B,Vicuna-13B模型,gpu cpu运行

热门文章

  1. android 5.1 取消录制屏幕跳出的权限对话框问题(开发版,不适用手机)
  2. 【BZOJ2144】跳跳棋
  3. PPT2016内嵌Excel的动态图表
  4. 记一次feign调用报错:feign.codec.DecodeException: Error while extracting response for type [java...
  5. 黑苹果 macOS 无法修复磁盘 XXX 已修复
  6. [北航软工教学] 教学计划大纲
  7. Go语言学习之路(二)
  8. RSF 分布式 RPC 服务框架的分层设计
  9. VMware虚拟机无法识别U盘解决方案
  10. android自定义播放器按钮,android – 使用exo播放器添加全屏视频按钮