python tkinter教程-事件绑定,python tkinter insert函数

  python tkinter教程-事件绑定,python tkinter insert函数

  本文主要详细介绍Python用tkinter实现自定义记事本的方法。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。

  00-1010一、思考二。代码实现III。演示和总结

  

目录

  要完成记事本,我们首先需要考虑一个普通的记事本需要哪些功能。我们可以将这些功能按钮添加到我们的UI界面中。一般功能如下:

  新建一个文本文档,打开本地文件,保存文本文档功能项:剪切、复制、粘贴等。设置好基本功能选项后,我们再来思考记事本的实现思路。

  创建记事本窗口,设置记事本菜单项,为不同的菜单项配置不同的功能选项,运行记事本。

  

一、思考

  创建记事本窗口

  创建窗口时,我们要设置窗口的高度、宽度、文本区域和各种菜单,设置如下:

  课堂笔记:

  root=Tk()

  宽度:宽度

  高度:高度

  文本区域:文本区域

  菜单栏:

  文件菜单

  编辑菜单:编辑菜单

  帮助菜单:帮助菜单

  ScrollBat:滚动条

  宽度=300

  高度=300

  TextArea=Text(根)

  MenuBar=菜单(根)

  FileMenu=Menu(MenuBar,tearoff=0)

  EditMenu=Menu(MenuBar,tearoff=0)

  HelpMenu=Menu(MenuBar,tearoff=0)

  ScrollBar=Scrollbar(文本区域)

  文件=无

  设定记事本菜单项

  设置好基础框架后,接下来就是填写整个框架中的各种参数和配置项,包括菜单栏中的各种功能选项、窗口标题、窗口位置等。

  如果您随后向添加新函数,请在init函数中添加它们。

  菜单项代码示例:

  def __init__(self,**kwargs):

  #添加新配置

  self . file menu . add _ command(label= new ,command=self。_ _新文件)

  #添加开放配置

  self . file menu . add _ command(label= open ,command=self。__openFile)

  #添加保存配置

  self . file menu . add _ command(label= save ,command=self。_ _保存文件)

  配置功能选项

  接下来就是构建不同的功能函数,实现每个小功能。这里不需要编写独立的功能函数代码,只需要使用tkinter中的函数进行重新封装即可。

  配置示例代码:

  def __newFile(self):

  新文件:默认为未命名的文件。

  Self.root.title(未命名文件)

  self.file=无

  自我。TextArea.delete(1.0,END)

  完整代码如下

  导入tkinter

  导入操作系统

  来自tkinter import *

  从tkinter.messagebox导入*

  从tkinter.filedialog对话框导入*

  课堂笔记:

  root=Tk()

  宽度:宽度

  高度:高度

  文本区域:文本区域

  菜单栏:

  文件菜单

  编辑菜单:编辑菜单

   HelpMenu:帮助菜单

   ScrollBat:滚动条

   Width = 300

   Height = 300

   TextArea = Text(root)

   MenuBar = Menu(root)

   FileMenu = Menu(MenuBar, tearoff=0)

   EditMenu = Menu(MenuBar, tearoff=0)

   HelpMenu = Menu(MenuBar, tearoff=0)

   ScrollBar = Scrollbar(TextArea)

   file = None

   def __init__(self, **kwargs):

   # 设置文本框的大小

   try:

   self.Width = kwargs[width]

   except KeyError:

   pass

   try:

   self.Height = kwargs[height]

   except KeyError:

   pass

   # 设置窗口标题

   self.root.title("Python记事本")

   # 将窗口居中显示

   screenWidth = self.root.winfo_screenwidth()

   screenHeight = self.root.winfo_screenheight()

   left = (screenWidth / 2) - (self.Width / 2)

   top = (screenHeight / 2) - (self.Height / 2)

   self.root.geometry(%dx%d+%d+%d %

   (self.Width, self.Height, left, top))

   # 文本区域大小调整

   self.root.grid_rowconfigure(0, weight=1)

   self.root.grid_columnconfigure(0, weight=1)

   # Add controls (widget)

   self.TextArea.grid(sticky=N + E + S + W)

   # 增加新建配置

   self.FileMenu.add_command(label="新建", command=self.__newFile)

   # 增加打开配置

   self.FileMenu.add_command(label="打开", command=self.__openFile)

   # 增加保存配置

   self.FileMenu.add_command(label="保存", command=self.__saveFile)

   # 增加退出配置

   self.FileMenu.add_separator()

   self.FileMenu.add_command(label="退出", command=self.__quitApplication)

   # 菜单中设置文件按钮

   self.MenuBar.add_cascade(label="文件", menu=self.FileMenu)

   # 增加剪切功能

   self.EditMenu.add_command(label="剪切", command=self.__cut)

   # 增加复制功能

   self.EditMenu.add_command(label="复制", command=self.__copy)

   # 增加粘贴功能

   self.EditMenu.add_command(label="粘贴", command=self.__paste)

   # 菜单中设置编辑按钮

   self.MenuBar.add_cascade(label="编辑", menu=self.EditMenu)

   # 增加关于记事本选项

   self.HelpMenu.add_command(label="关于记事本", command=self.__showAbout)

   # 菜单中射者帮助按钮

   self.MenuBar.add_cascade(label="帮助", menu=self.HelpMenu)

   self.root.config(menu=self.MenuBar)

   self.ScrollBar.pack(side=RIGHT, fill=Y)

   # 滚动条根据内容进行调整

   self.ScrollBar.config(command=self.TextArea.yview)

   self.TextArea.config(yscrollcommand=self.ScrollBar.set)

   def __quitApplication(self):

   用于退出程序(关了就消失)

   self.root.destroy()

   def __showAbout(self):

   添加帮助菜单中的信息

   showinfo("关于记事本", "来自:二哥不像程序员")

   def __openFile(self):

   打开文件

   self.file = askopenfilename(defaultextension=".txt",

   filetypes=[("All Files", "*.*"),

   ("Text Documents", "*.txt")])

   if self.file == "":

   self.file = None

   else:

   self.root.title(os.path.basename(self.file))

   self.TextArea.delete(1.0, END)

   file = open(self.file, "r")

   self.TextArea.insert(1.0, file.read())

   file.close()

   def __newFile(self):

   新文件:默认是一个未命名文件

   self.root.title("未命名文件")

   self.file = None

   self.TextArea.delete(1.0, END)

   def __saveFile(self):

   用于保存文件,不存在的文件进行新建,存在的文件在原文件基础上覆盖保存

   if self.file == None:

   self.file = asksaveasfilename(initialfile=Untitled.txt,

   defaultextension=".txt",

   filetypes=[("All Files", "*.*"),

   ("Text Documents",

   "*.txt")])

   if self.file == "":

   self.file = None

   else:

   file = open(self.file, "w")

   file.write(self.TextArea.get(1.0, END))

   file.close()

   # 更改title名字为文件名

   self.root.title(os.path.basename(self.file))

   else:

   file = open(self.file, "w")

   file.write(self.TextArea.get(1.0, END))

   file.close()

   # 添加功能项

   def __cut(self):

   self.TextArea.event_generate("<<Cut>>")

   def __copy(self):

   self.TextArea.event_generate("<<Copy>>")

   def __paste(self):

   self.TextArea.event_generate("<<Paste>>")

   def run(self):

   # 使用mainloop()使得窗口一直存在

   self.root.mainloop()

  notepad = Notepad(width=600, height=400)

  notepad.run()

  

  

  

三、展示

  

  

菜单栏根据不同的系统会有不同的位置展示,mac嵌入在左上角,win在窗口内部进行嵌入。

  

  

  

总结

  本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行IT软件开发工作室的更多内容!

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: