Python--GUI之简单记事本的构建

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()

你可能感兴趣的:(Python--GUI之简单记事本的构建)