Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import font
- from tkcalendar import Calendar, DateEntry
- import tkinter as tk
- # set font options for button
- FirstFont =('Helvetica', 20)
- # create class for initialized gui
- class app(tk.Tk):
- def __init__(self, *args, **kwargs):
- tk.Tk.__init__(self, *args, **kwargs)
- # create windows container or frame main
- frm_main = tk.Frame(self)
- frm_main.pack(side = "top", expand = True)
- frm_main.grid_rowconfigure(0, weight = 1)
- frm_main.grid_columnconfigure(0, weight = 1)
- # initiaze frame to empty array
- self.frames = {}
- # create different window iteration
- for F in (mainpage, insert_data, export_data):
- frame = F(frm_main, self) # need explanation in cheat sheet
- # initiaze first window
- self.frames[F] = frame
- frame.grid(row = 0, column = 0, sticky ="nsew")
- self.show_frame(mainpage)
- # to display the current frame passed as
- # parameter
- def show_frame(self, cont):
- frame = self.frames[cont]
- frame.tkraise()
- # first window frame startpage
- class mainpage(tk.Frame):
- def __init__(self, parent, controller):
- tk.Frame.__init__(self, parent)
- # button for main page
- btn_export = tk.Button(self, text ="Export Data", font = FirstFont, command = lambda : controller.show_frame(export_data))
- btn_insert = tk.Button(self, text ="Insert Data", font = FirstFont, command = lambda : controller.show_frame(insert_data))
- # putting the grid in its place by using
- # grid
- #btn_insert.grid(row = 0, padx = 10, pady = 10, sticky ="ew")
- #btn_export.grid(row = 1, padx = 10, pady = 10, sticky ="ew")
- btn_insert.pack(fill='both', expand=True)
- btn_export.pack(side='bottom', fill='both', expand=True)
- class insert_data(tk.Frame):
- def __init__(self, parent, controller):
- tk.Frame.__init__(self, parent)
- # create calender dropdown menu
- cal_input = DateEntry(
- self,
- width = 12,
- borderwidth = 2,
- year = 2020,
- background = 'blue'
- )
- # create dropdown menu
- variable = tk.StringVar(self)
- variable.set('Weekdays')
- dropdown_date = tk.OptionMenu(
- self,
- variable,
- 'Weekend',
- 'Weekdays',
- )
- # create input widget
- ent_activity = tk.Entry(
- self,
- width = 30
- )
- # create button for 2nd page
- btn_data = tk.Button(
- self,
- text = 'Add data',
- width = 25
- )
- # create button for return to main menu
- btn_back = tk.Button(
- self,
- text = 'Back',
- width = 25,
- background = 'red',
- command = lambda : controller.show_frame(mainpage)
- )
- # put widget on grid
- btn_data.grid(row = 3, column = 1, padx = 10, pady = 10)
- btn_back.grid(row = 4, column = 1, padx = 10, pady = 5)
- cal_input.grid(row = 1, column = 1, padx = 10, pady = 5, sticky = 'ew')
- dropdown_date.grid(row = 2, column = 1, padx = 10, pady = 5, sticky ='ew')
- ent_activity.grid(row = 0, column = 1, padx = 10, pady = 5)
- class export_data(tk.Frame):
- def __init__(self, parent, controller):
- tk.Frame.__init__(self, parent)
- # create calender dropdown menu
- cal_export = DateEntry(
- self,
- width = 12,
- borderwidth = 2,
- year = 2020,
- background = 'blue'
- )
- # export button
- btn_export_data = tk.Button(
- self,
- text = 'Export Data',
- width = 25,
- )
- # back button to main menu
- btn_back = tk.Button(
- self,
- text = 'Back',
- width = 25,
- background = 'red',
- command = lambda : controller.show_frame(mainpage)
- )
- # put widget on grid
- cal_export.grid(row = 0, column = 0, padx = 10, pady = 5, sticky = 'ew')
- btn_export_data.grid(row = 1, padx = 10, pady = 15)
- btn_back.grid(row = 2, padx = 10, pady = 10)
- # Driver Code
- app1 = app()
- app1.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment