Feb-15-2019, 06:03 PM
from tkinter import * from tkinter import ttk class Notebook: def __init__(self): self.root = Tk() self.root.title('Note Book') self.build_Menu() self.build_NoteBook() self.build_page_1() self.root.mainloop() def build_Menu(self): # MENU WIDGET CONFIGURATION self.menu = Menu(self.root) self.root.configure(menu=self.menu) self.filemenu = [None] * 3 for f in range(1,3): self.filemenu[f] = Menu(self.menu,tearoff=False) #FILE MENU self.menu.add_cascade(label='File', menu=self.filemenu[1]) for i in ['New','Open','Save','Print','Exit']: if i == 'New': self.filemenu[1].add_command(label=i,command=self.Add_New_Tab) elif i == 'Print': self.filemenu[1].add_command(label=i) self.filemenu[1].add_separator('') elif i == 'Exit': self.filemenu[1].add_command(label=i,command=quit) else: self.filemenu[1].add_command(label=i) #EDIT MENU self.menu.add_cascade(label='Edit',menu=self.filemenu[2]) for i,k,l in [('Copy','Ctrl+C',''),('Cut','Ctrl+X','s'),('Paste','Ctrl+P',''),('Select All','Ctrl+A','s'),('Delete','Delete','')]: if i == 'Delete': self.filemenu[2].add_command(label=(f'{i} {k:>20}'),command=lambda:self.canvas.delete(ALL)) elif l == 's': self.filemenu[2].add_command(label=(f'{i} {k:>20}')) self.filemenu[2].add_separator('') else: self.filemenu[2].add_command(label=(f'{i} {k:>20}')) # ADD NEW TAG CODE def Add_New_Tab(self): for k in range(2,3): self.notebook.add(self.tab[k],text=f'Page {k}') def build_NoteBook(self): # NOTEBOOK WIDGET CONFIGURATION self.notebook = ttk.Notebook(self.root,height=400,width=800) self.tab = [None] * 10 global t for t in range(1,10): self.tab[t] = ttk.Frame(self.notebook) self.notebook.add(self.tab[1],text='Page 1',underline=0) # self.notebook.add(self.tab[2], text='Page 2') # self.notebook.add(self.tab[3], text='Page 3') # self.notebook.add(self.tab[4], text='Page 4') self.notebook.pack(fill=BOTH, expand=YES, padx=5, pady=5) #PAGE ONE CONTENTS def build_page_1(self): self.canvas = Canvas(self.tab[1],width=100,height=50,bg='#ffffff',cursor='heart') self.canvas.pack(fill=BOTH,expand=True,padx=5,pady=5) self.canvas.bind('<B1-Motion>',self.bind_paint) ttk.Button(self.tab[1], text='clean', command=lambda: self.canvas.delete(ALL)).pack(side=LEFT,anchor=CENTER,padx=90,pady=5,fill=X,expand=1) ttk.Button(self.tab[1], text='close', command=quit).pack(side=LEFT, padx=90, fill=X, anchor=CENTER,expand=1) #BINDING MOTION THAT SKETCHED THE CIRCLES RED COLORS def bind_paint(self,event): x1,y1 = (event.x - 5),(event.y - 5) x2,y2 = (event.x + 5),(event.y + 5) i = self.canvas.create_oval(x1,y1,x2,y2,fill='#ff0000',outline='#000000') return i if __name__ == '__main__': Notebook()Please how can I add one new tab/page (Frame) at a time into my NoteBook Widget each time I clicked on 'New' in my File Menu Widget?
Thanks.