• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    教你如何使用Python Tkinter库制作记事本

    Tkinter库制作记事本

    现在为了创建这个记事本,你的系统中应该已经安装了 Python 3 和 Tkinter。您可以根据系统要求下载合适的python 包。成功安装 python 后,您需要安装 Tkinter(一个 Python 的 GUI 包)。

    使用此命令安装 Tkinter :

    pip install python-tk

    导入 Tkinter :

    import tkinter
    import os
    from tkinter import *
    from tkinter.messagebox import *
    from tkinter.filedialog import *

    注意: messagebox用于在称为记事本的白框中写入消息,filedialog用于在您从系统中的任何位置打开文件或将文件保存在特定位置或位置时出现的对话框。

    添加菜单:

    # Add controls(widget) 
      
    self.__thisTextArea.grid(sticky = N + E + S + W) 
      
    # To open new file 
    self.__thisFileMenu.add_command(label = "New", 
                                    command = self.__newFile) 
      
    # To open a already existing file 
    self.__thisFileMenu.add_command(label = "Open", 
                                    command = self.__openFile) 
      
    # To save current file 
    self.__thisFileMenu.add_command(label = "Save", 
                                    command = self.__saveFile) 
      
    # To create a line in the dialog 
    self.__thisFileMenu.add_separator() 
      
    # To terminate 
    self.__thisFileMenu.add_command(label = "Exit", 
                                    command = self.__quitApplication) 
    self.__thisMenuBar.add_cascade(label = "File", 
                                   menu = self.__thisFileMenu) 
      
    # To give a feature of cut 
    self.__thisEditMenu.add_command(label = "Cut", 
                                    command = self.__cut) 
      
    # To give a feature of copy 
    self.__thisEditMenu.add_command(label = "Copy", 
                                    command = self.__copy) 
      
    # To give a feature of paste 
    self.__thisEditMenu.add_command(label = "Paste", 
                                    command = self.__paste) 
      
    # To give a feature of editing 
    self.__thisMenuBar.add_cascade(label = "Edit", 
                                   menu = self.__thisEditMenu) 
      
    # To create a feature of description of the notepad 
    self.__thisHelpMenu.add_command(label = "About Notepad", 
                                    command = self.__showAbout) 
    self.__thisMenuBar.add_cascade(label = "Help", 
                                   menu = self.__thisHelpMenu) 
      
    self.__root.config(menu = self.__thisMenuBar) 
      
    self.__thisScrollBar.pack(side = RIGHT, fill = Y) 
      
    # Scrollbar will adjust automatically 
    # according to the content 
    self.__thisScrollBar.config(command = self.__thisTextArea.yview) 
    self.__thisTextArea.config(yscrollcommand = self.__thisScrollBar.set) 
    

    使用此代码,我们将在记事本的窗口中添加菜单,并向其中添加复制、粘贴、保存等内容。

    添加功能:

    def __quitApplication(self): 
        self.__root.destroy() 
        # exit() 
      
    def __showAbout(self): 
        showinfo("Notepad", "Mrinal Verma") 
      
    def __openFile(self): 
              
        self.__file = askopenfilename(defaultextension=".txt", 
                                      filetypes=[("All Files","*.*"), 
                                          ("Text Documents","*.txt")]) 
      
        if self.__file == "": 
      
            # no file to open 
            self.__file = None
        else: 
            # try to open the file 
            # set the window title 
            self.__root.title(os.path.basename(self.__file) + " - Notepad") 
            self.__thisTextArea.delete(1.0,END) 
      
            file = open(self.__file,"r") 
      
            self.__thisTextArea.insert(1.0,file.read()) 
      
            file.close() 
      
              
    def __newFile(self): 
        self.__root.title("Untitled - Notepad") 
        self.__file = None
        self.__thisTextArea.delete(1.0,END) 
      
    def __saveFile(self): 
      
        if self.__file == None: 
            #save as new file 
            self.__file = asksaveasfilename(initialfile='Untitled.txt', 
                                            defaultextension=".txt", 
                                            filetypes=[("All Files","*.*"), 
                                                ("Text Documents","*.txt")]) 
      
            if self.__file == "": 
                self.__file = None
            else: 
                  
                # try to save the file 
                file = open(self.__file,"w") 
                file.write(self.__thisTextArea.get(1.0,END)) 
                file.close() 
                # change the window title 
                self.__root.title(os.path.basename(self.__file) + " - Notepad") 
                      
                  
        else: 
            file = open(self.__file,"w") 
            file.write(self.__thisTextArea.get(1.0,END)) 
            file.close() 
      
    def __cut(self): 
        self.__thisTextArea.event_generate("Cut>>") 
      
    def __copy(self): 
        self.__thisTextArea.event_generate("Copy>>") 
      
    def __paste(self): 
        self.__thisTextArea.event_generate("Paste>>") 
    

    在这里,我们添加了记事本中所需的所有功能,您也可以添加其他功能,例如字体大小、字体颜色、粗体、下划线等。

    合并后的主要代码:

    import tkinter
    import os
    from tkinter import *
    from tkinter.messagebox import *
    from tkinter.filedialog import *
     
     
    class Notepad:
        __root = Tk()
     
        # default window width and height
        __thisWidth = 300
        __thisHeight = 300
        __thisTextArea = Text(__root)
        __thisMenuBar = Menu(__root)
        __thisFileMenu = Menu(__thisMenuBar, tearoff=0)
        __thisEditMenu = Menu(__thisMenuBar, tearoff=0)
        __thisHelpMenu = Menu(__thisMenuBar, tearoff=0)
     
        # To add scrollbar
        __thisScrollBar = Scrollbar(__thisTextArea)
        __file = None
     
        def __init__(self, **kwargs):
     
            # Set icon
            try:
                self.__root.wm_iconbitmap("Notepad.ico")
            except:
                pass
     
            # Set window size (the default is 300x300)
     
            try:
                self.__thisWidth = kwargs['width']
            except KeyError:
                pass
     
            try:
                self.__thisHeight = kwargs['height']
            except KeyError:
                pass
     
            # Set the window text
            self.__root.title("Untitled - Notepad")
     
            # Center the window
            screenWidth = self.__root.winfo_screenwidth()
            screenHeight = self.__root.winfo_screenheight()
     
            # For left-alling
            left = (screenWidth / 2) - (self.__thisWidth / 2)
     
            # For right-allign
            top = (screenHeight / 2) - (self.__thisHeight / 2)
     
            # For top and bottom
            self.__root.geometry('%dx%d+%d+%d' % (self.__thisWidth,
                                                  self.__thisHeight,
                                                  left, top))
     
            # To make the textarea auto resizable
            self.__root.grid_rowconfigure(0, weight=1)
            self.__root.grid_columnconfigure(0, weight=1)
     
            # Add controls (widget)
            self.__thisTextArea.grid(sticky=N + E + S + W)
     
            # To open new file
            self.__thisFileMenu.add_command(label="New",
                                            command=self.__newFile)
     
            # To open a already existing file
            self.__thisFileMenu.add_command(label="Open",
                                            command=self.__openFile)
     
            # To save current file
            self.__thisFileMenu.add_command(label="Save",
                                            command=self.__saveFile)
     
            # To create a line in the dialog
            self.__thisFileMenu.add_separator()
            self.__thisFileMenu.add_command(label="Exit",
                                            command=self.__quitApplication)
            self.__thisMenuBar.add_cascade(label="File",
                                           menu=self.__thisFileMenu)
     
            # To give a feature of cut
            self.__thisEditMenu.add_command(label="Cut",
                                            command=self.__cut)
     
            # to give a feature of copy
            self.__thisEditMenu.add_command(label="Copy",
                                            command=self.__copy)
     
            # To give a feature of paste
            self.__thisEditMenu.add_command(label="Paste",
                                            command=self.__paste)
     
            # To give a feature of editing
            self.__thisMenuBar.add_cascade(label="Edit",
                                           menu=self.__thisEditMenu)
     
            # To create a feature of description of the notepad
            self.__thisHelpMenu.add_command(label="About Notepad",
                                            command=self.__showAbout)
            self.__thisMenuBar.add_cascade(label="Help",
                                           menu=self.__thisHelpMenu)
     
            self.__root.config(menu=self.__thisMenuBar)
     
            self.__thisScrollBar.pack(side=RIGHT, fill=Y)
     
            # Scrollbar will adjust automatically according to the content
            self.__thisScrollBar.config(command=self.__thisTextArea.yview)
            self.__thisTextArea.config(yscrollcommand=self.__thisScrollBar.set)
     
        def __quitApplication(self):
            self.__root.destroy()
            # exit()
     
        def __showAbout(self):
            showinfo("Notepad", "Mrinal Verma")
     
        def __openFile(self):
     
            self.__file = askopenfilename(defaultextension=".txt",
                                          filetypes=[("All Files", "*.*"),
                                                     ("Text Documents", "*.txt")])
     
            if self.__file == "":
     
                # no file to open
                self.__file = None
            else:
     
                # Try to open the file
                # set the window title
                self.__root.title(os.path.basename(self.__file) + " - Notepad")
                self.__thisTextArea.delete(1.0, END)
     
                file = open(self.__file, "r")
     
                self.__thisTextArea.insert(1.0, file.read())
     
                file.close()
     
        def __newFile(self):
            self.__root.title("Untitled - Notepad")
            self.__file = None
            self.__thisTextArea.delete(1.0, END)
     
        def __saveFile(self):
     
            if self.__file == None:
                # Save as new file
                self.__file = asksaveasfilename(initialfile='Untitled.txt',
                                                defaultextension=".txt",
                                                filetypes=[("All Files", "*.*"),
                                                           ("Text Documents", "*.txt")])
     
                if self.__file == "":
                    self.__file = None
                else:
     
                    # Try to save the file
                    file = open(self.__file, "w")
                    file.write(self.__thisTextArea.get(1.0, END))
                    file.close()
     
                    # Change the window title
                    self.__root.title(os.path.basename(self.__file) + " - Notepad")
     
     
            else:
                file = open(self.__file, "w")
                file.write(self.__thisTextArea.get(1.0, END))
                file.close()
     
        def __cut(self):
            self.__thisTextArea.event_generate("Cut>>")
     
        def __copy(self):
            self.__thisTextArea.event_generate("Copy>>")
     
        def __paste(self):
            self.__thisTextArea.event_generate("Paste>>")
     
        def run(self):
     
            # Run main application
            self.__root.mainloop()
     
        # Run main application
     
     
    notepad = Notepad(width=600, height=400)
    notepad.run()
    

    要运行此代码,请使用扩展名.py保存它,然后打开 cmd(命令提示符)并移动到保存文件的位置,然后编写以下内容

    python "filename".py 

    然后按回车,它就会运行。或者可以通过简单地双击您的.py扩展文件直接运行。

    到此这篇关于教你如何使用Python Tkinter库制作记事本的文章就介绍到这了,更多相关Tkinter库制作记事本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python实战之用tkinter库做一个鼠标模拟点击器
    • 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
    • python tkinter库实现气泡屏保和锁屏
    • python自带tkinter库实现棋盘覆盖图形界面
    • python使用tkinter库实现五子棋游戏
    • Python使用tkinter库实现文本显示用户输入功能示例
    • python基于Tkinter库实现简单文本编辑器实例
    上一篇:Python中常见的反爬机制及其破解方法总结
    下一篇:Django使用echarts进行可视化展示的实践
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    教你如何使用Python Tkinter库制作记事本 教你,如何,使用,Python,Tkinter,