建立程序

  1. from tkinter import *
  2. from tkinter.colorchooser import *
  3. from tkinter.filedialog import *
  4. class Application(Frame):
  5. def __init__(self, master=None):
  6. super().__init__(master)
  7. self.master = master #super()代表的是父类的定义,而不是父类对象
  8. self.textpad = None #textpad表示Text文本框对象
  9. self.pack()
  10. self.createWiget()
  11. def createWiget(self):
  12. #创建主菜单栏
  13. menubar = Menu(root)
  14. #创建字菜单
  15. menFile = Menu(menubar)
  16. menEdit = Menu(menubar)
  17. menHelp = Menu(menubar)
  18. #将子菜单加入到主菜单栏
  19. menubar.add_cascade(label="文件(F)",menu=menFile)
  20. menubar.add_cascade(label="编辑(E)", menu=menEdit)
  21. menubar.add_cascade(label="帮助(H)", menu=menHelp)
  22. #添加菜单项
  23. menFile.add_cascade(label="新建",accelerator="ctrl+n",command=self.newfile)
  24. menFile.add_cascade(label="打开", accelerator="ctrl+o",command=self.openfile)
  25. menFile.add_cascade(label="保存", accelerator="ctrl+s",command=self.savefile)
  26. menFile.add_separator() #添加分割线
  27. menFile.add_cascade(label="退出", accelerator="ctrl+q",command=self.exit)
  28. #将主菜单栏加到根窗口
  29. root["menu"]=menubar
  30. #增加快捷键的处理
  31. root.bind("<Control-n>",lambda event:self.newfile())
  32. root.bind("<Control-o>",lambda event:self.openfile())
  33. root.bind("<Control-s>", lambda event: self.savefile())
  34. root.bind("<Control-q>", lambda event: self.exit())
  35. # 文本编辑区
  36. self.textpad = Text(root, width=50, height=30)
  37. self.textpad.pack()
  38. #创建上下菜单
  39. self.contextMenu = Menu(root)
  40. self.contextMenu.add_command(label="背景颜色",command=self.openAskColor)
  41. #为右键绑定事件
  42. root.bind("<Button-3>",self.createContextMenu)
  43. def newfile(self):
  44. self.textpad.delete(1.0, END) # 把text控件中所有内容清空
  45. self.filename = asksaveasfilename(title="另存为",initialfile="未命名.txt",filetypes=[("文本文档","*.txt")],defaultextension=".txt")
  46. self.savefile()
  47. def openfile(self):
  48. self.textpad.delete(1.0,END)#把text控件中所有内容清空
  49. with askopenfile(title="打开文本文件") as f:
  50. self.textpad.insert(INSERT,f.read())
  51. self.filename = f.name
  52. def savefile(self):
  53. with open(self.filename,"w") as f:
  54. c = self.textpad.get(1.0,END)
  55. f.write(c)
  56. def exit(self):
  57. root.quit()
  58. def openAskColor(self):
  59. s1 = askcolor(color="red",title="返回背景色")
  60. self.textpad.config(bg=s1[1])
  61. def createContextMenu(self,event):
  62. #菜单在鼠标右键单击的坐标处显示
  63. self.contextMenu.post(event.x_root,event.y_root)
  64. if __name__ == "__main__":
  65. root = Tk()
  66. root.geometry("450x300+600+200")
  67. root.title("简易记事本")
  68. app = Application(master=root)
  69. root.mainloop()

image.png

打包程序

①打开file ——>setting

Snipaste_2022-04-26_09-09-12.png

②选择Project:xxx.py——> Python Interprete

Snipaste_2022-04-26_09-09-51.png

③点击旁边的“+”号

Snipaste_2022-04-26_09-10-09.png

④在搜索框中搜索:pyinstaller ——> 并点击下方Install Package

Snipaste_2022-04-26_09-10-54.png

⑤等待安装成功

Snipaste_2022-04-26_09-11-33_看图王.png

⑥打开控制台

image.pngimage.png

⑦打包——> 控制台输入pyinstaller -F xxx.py

Snipaste_2022-04-26_09-08-04.png

【注】:相关参数如下:

  • —icon=图标路径(pyinstall -F —icon=my.icon xxx.py)
  • -F 打包成一个exe文件
  • -W 使用窗口,无控制台
  • -C 使用控制台,无窗口
  • -D 创建一个目录,里面包含exe以及其他一些依赖性文件

⑧打开项目下的dist目录

image.png