Advertisement
Guest User

Cannot change frames

a guest
Jan 24th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.71 KB | None | 0 0
  1. import pymysql
  2. import tkinter as tk                # python 3
  3. from tkinter import font as tkfont  # python 3
  4. #import Tkinter as tk     # python 2
  5. #import tkFont as tkfont  # python 2
  6.  
  7.  
  8. class SampleApp(tk.Tk):
  9.  
  10.     def __init__(self, *args, **kwargs):
  11.         tk.Tk.__init__(self, *args, **kwargs)
  12.  
  13.         self.title_font = tkfont.Font(family='Helvetica', size=18, weight="bold", slant="italic")
  14.  
  15.         # the container is where we'll stack a bunch of frames
  16.         # on top of each other, then the one we want visible
  17.         # will be raised above the others
  18.         container = tk.Frame(self)
  19.         container.pack(side="top", fill="both", expand=True)
  20.         container.grid_rowconfigure(0, weight=1)
  21.         container.grid_columnconfigure(0, weight=1)
  22.  
  23.         self.frames = dict()
  24.         for F in (LoginPage, AdminPage):
  25.             page_name = F.__name__
  26.             frame = F(parent=container, controller=self)
  27.             self.frames[page_name] = frame
  28.  
  29.             # put all of the pages in the same location;
  30.             # the one on the top of the stacking order
  31.             # will be the one that is visible.
  32.  
  33.         self.show_frame("LoginPage")
  34.         self.show_frame("AdminPage")
  35.  
  36.     def show_frame(self, page_name):
  37.         '''Show a frame for the given page name'''
  38.         frame = self.frames[page_name]
  39.         frame.tkraise()
  40.  
  41.  
  42. class LoginPage(tk.Frame):
  43.  
  44.     def __init__(self, parent, controller):
  45.         tk.Frame.__init__(self, parent)
  46.         self.controller = controller
  47.         self.label_1 = tk.Label(parent, text="Username:")
  48.         self.label_2 = tk.Label(parent, text="Password:")
  49.         self.username = tk.Entry(parent, textvariable=tk.StringVar())
  50.         self.username.focus_set()
  51.         self.password = tk.Entry(parent, show="*", textvariable=tk.StringVar())
  52.         self.sign_in = tk.Button(parent, text="Sign In", command=lambda: self.validation(self.controller))
  53.         self.label_1.grid(row=0, sticky='e')
  54.         self.label_2.grid(row=1, sticky='e')
  55.         self.username.grid(row=0, column=1, pady=3)
  56.         self.password.grid(row=1, column=1, pady=3)
  57.         self.sign_in.grid(row=0, column=2, rowspan=2, pady=2, padx=5)
  58.  
  59.     def validation(self, controller):
  60.         u = str(self.username.get())
  61.         p = str(self.password.get())
  62.         conn = pymysql.connect(host="localhost", user="root", password="", db="e-library")
  63.         c = conn.cursor()
  64.         verify_user = "SELECT * from tblusers WHERE username = %s AND password = %s"
  65.         c.execute(verify_user, (u, p))
  66.         results = c.fetchall()
  67.  
  68.         if results:
  69.             for i in results:
  70.                 print("Hello " + i[1])
  71.                 controller.show_frame('AdminPage')
  72.         else:
  73.             print("Username or Password not recognized")
  74.  
  75.  
  76. class AdminPage(tk.Frame):
  77.  
  78.     def __init__(self, parent, controller):
  79.         tk.Frame.__init__(self, parent)
  80.         frame = tk.Frame(parent)
  81.         self.menu_bar = tk.Menu(frame)
  82.         self.controller = controller
  83.         self.parent = parent
  84.  
  85.     def menu_bar(self, controller):
  86.         main_menu = tk.Menu(controller)
  87.         file_menu = tk.Menu(main_menu, tearoff=0)
  88.         new_menu = tk.Menu(file_menu, tearoff=0)
  89.         main_menu.add_cascade(label='File', menu=file_menu)
  90.         file_menu.add_cascade(label='New', menu=new_menu)
  91.         new_menu.add_command(label='Register Student...', command=self.new_student)
  92.         new_menu.add_command(label='Register Journal', command=self.new_journal)
  93.         return main_menu
  94.  
  95.     def new_student(self):
  96.         print('I am a student')
  97.  
  98.     def new_journal(self):
  99.         print('I am a journal')
  100.  
  101.  
  102. if __name__ == "__main__":
  103.     app = SampleApp()
  104.     app.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement