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,Python,GUI,tkinter)