# encoding=utf-8
from tkinter import Tk, Frame, Menu, Text, INSERT, END
from tkinter.filedialog import *
from tkinter.colorchooser import *
class Application(Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.textpad = None
self.filename = None
self.contextMenu = None
self.pack()
self.createWidget()
def createWidget(self):
menubar = Menu(root)
menuFile = Menu(menubar)
menuEdit = Menu(menubar)
menuHelp = Menu(menubar)
menubar.add_cascade(label='file(F)', menu=menuFile)
menubar.add_cascade(label='edit(E)', menu=menuEdit)
menubar.add_cascade(label='help(H)', menu=menuHelp)
menuFile.add_command(label='new', accelerator='ctrl+n', command=self.newfile)
menuFile.add_command(label='open', accelerator='ctrl+o', command=self.openfile)
menuFile.add_command(label='save', accelerator='ctrl+s', command=self.savefile)
menuFile.add_separator()
menuFile.add_command(label='exit', accelerator='ctrl+q', command=self.exit)
root['menu'] = menubar
root.bind('<Control-n>', lambda event: self.newfile())
root.bind('<Control-o>', lambda event: self.openfile())
root.bind('<Control-s>', lambda event: self.savefile())
root.bind('<Control-q>', lambda event: self.exit())
self.textpad = Text(root, width=50, height=30)
self.textpad.pack()
self.contextMenu = Menu(root)
self.contextMenu.add_command(label='background color', command=self.openAskColor)
root.bind('<Button-3>', self.createContextMenu)
def newfile(self):
self.textpad.delete('1.0', 'end')
self.filename = asksaveasfilename(title='save as', initialfile='unnamed.txt',
filetypes=[('text document', '*txt')],
defaultextension='.txt')
self.savefile()
def openfile(self):
self.textpad.delete('1.0', 'end')
with open(askopenfile(title='open file')) 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 exit(self):
root.quit()
def openAskColor(self):
s1 = askcolor(color='red', title='choose colors')
self.textpad.config(bg=s1[1])
def createContextMenu(self, event):
self.contextMenu.post(event.x_root, event.y_root)
if __name__ == '__main__':
root = Tk()
root.geometry('450x300+200+300')
root.title('My notebook')
app = Application(master=root)
root.mainloop()
老师您好,在这一个视频中我也出现了好多问题,根据其他同学的提问,老师们的解答,和百度知乎上解决了一部分,到了这一步没找到解决方法:就是打包时一直提示:
(venv) C:\Users\刘琪\PycharmProjects\GUI>pyinstaller -F mytest.py
failed to create process.
麻烦老师解答,谢谢