欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-17 09:41:20
...

上代码:

#coding:utf-8

from 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(); # 隐藏entry
	text.pack_forget(); # 隐藏text
	saveBtn.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"); #清空text
	label.config(text = "写日记");
	listBox.pack_forget(); # 隐藏listBox
	entry.pack(); # 显示entry
	text.pack(); # 显示text
	saveBtn.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(中间) 默认center

writeBtn = 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();




相关标签: python python2.7