1、源代码
from tkinter import *
from tkinter.colorchooser import *
from tkinter.filedialog import *
class Appication(Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.CreateWidget()
def CreateWidget(self):
self.mainmenu = Menu(window)
self.menuFile = Menu(self.mainmenu)
self.menuEdit = Menu(self.mainmenu)
self.menuHelp = Menu(self.mainmenu)
self.mainmenu.add_cascade(label="文件(F)", menu=self.menuFile)
self.mainmenu.add_cascade(label="编辑(E)", menu=self.menuEdit)
self.mainmenu.add_cascade(label="帮助(H)", menu=self.menuHelp)
self.menuFile.add_command(label="新建", accelerator="ctrl + n", command=self.newfile)
self.menuFile.add_command(label="打开", accelerator="ctrl + o", command=self.openfile)
self.menuFile.add_command(label="保存", accelerator="ctrl + s", command=self.savefile)
self.menuFile.add_separator()
self.menuFile.add_command(label="退出", accelerator="ctrl + q", command=self.exitfile)
window["menu"] = self.mainmenu
window.bind("<Control-n>", lambda event:self.newfile())
window.bind("<Control-o>", lambda event:self.openfile())
window.bind("<Control-s>", lambda event:self.savefile())
window.bind("<Control-q>", lambda event:self.exitfile())
self.textpad = Text(window, width=50, height=30)
self.textpad.pack()
self.contextMenu = Menu(window)
self.contextMenu.add_command(label="背景颜色", command=self.openAskColor)
window.bind("<Button-3>", self.createContextMenu)
def openAskColor(self):
s1 = askcolor(color="red", title="选择背景颜色")
self.textpad.config(bg=s1[1])
def newfile(self):
self.textpad.delete(1.0, END)
self.filename = asksaveasfilename(title="另存为", initialfile='未命名.txt',
filetypes=[("文本文档", "*.txt")],
defaultextension=".txt")
self.savefile()
def openfile(self):
self.textpad.delete(1.0, END)
with askopenfile(title="打开文本文件") as f:
self.textpad.insert(INSERT, f.read())
self.filename = f.name
def savefile(self):
with open(self.filename, "w") as f:
c = self.textpad.get(1.0, END)
f.write(c)
def exitfile(self):
window.quit()
def createContextMenu(self, event):
self.contextMenu.post(event.x_root, event.y_root)
if __name__ == "__main__":
window = Tk()
window.geometry("200x200+200+200")
app = Appication(master=window)
window.mainloop()
2、将 Python 程序打包成 exe 可执行文件
- 在 Terminal 终端里面输入 pyinstaller -F main.py
- 在 dist 文件夹里面可以找到对应生成的 exe 可执行文件