Python--GUI之简单记事本的构建
python用于构建图形界面的模块
- pyqt : 通常用于大型项目中,目前属于主流
- wxpython : 拥有比较完善的控件,但是相对比较老的库了
- tkinter : 轻量级的开发框架
本次案例主要应用了tkiner,代码如下:
from tkinter import *
from tkinter.filedialog import *
def new():
txt = text.get(1.0,END)
if not txt:
return
savefile()
# else:
# text.delete(1.0,END)
def openfile():
filename = askopenfilename(title='打开文档',filetypes=[('文本文档',"*.txt"),("py文件","*.py")])
print(filename)
if not filename:
return
txt = open(filename).read()
text.insert("1.0",txt)
root.title("%s - 记事本"%filename.split('/')[-1])
def savefile():
filename= asksaveasfilename(title='另存为',initialfile='未命名.txt',filetypes=[("文本文档","*.txt")],defaultextension='.txt')
print(filename)
if not filename:
return
fn = open(filename,'w')
fn.write(text.get(1.0,END))
fn.close()
text.delete(1.0,END)
root.title(u"%s - 记事本" %filename.split("/")[-1])
def saveelse():
pass
root = Tk()
# 修改名字
root.title("无标题 - 记事本")
# 修改窗口大小 + 窗口的显示位置
root.geometry("300x200+1000+300")
# 添加控件
me = Menu()
root.config(menu = me)
filemenu = Menu(me) # 二级菜单
filemenu.add_command(label="新建",accelerator='Ctrl + N',command=new)
filemenu.add_command(label="打开",accelerator="Ctrl + O",command=openfile)
filemenu.add_command(label="保存",accelerator="Ctrl + S",command=savefile)
filemenu.add_command(label="另存为",accelerator="Ctrl + S",command=saveelse)
filemenu.add_separator()
filemenu.add_command(label="页面设置")
filemenu.add_command(label="打印")
filemenu.add_separator()
filemenu.add_command(label="退出",command=root.quit)
me.add_cascade(label="文件",menu=filemenu)
# 编辑区
text = Text() # 多行文本框
text.pack(expand=YES,fill=BOTH)
# 显示窗口
root.mainloop()