PHC - Naethan
Forum Expert
- Joined
- Dec 27, 2016
- Posts
- 3,375
- Reaction
- 18,123
- Points
- 2,599
- Age
- 22
Good Afternoon mga ka PHC
Ask lng ako about python pano mag redirect form by form vice versa, Eto pala yung File
Login.py
Signup.py
Sorry narin sa abala, Thanks in adv
Ask lng ako about python pano mag redirect form by form vice versa, Eto pala yung File
Login.py
Python:
import customtkinter as ctk
import os
from tkinter import messagebox
from customtkinter import *
from PIL import Image, ImageTk
window = None
def exit_app(event = None):
window.destroy()
def log_in(event = None):
user = window.user_name.get().strip()
passd = window.password.get()
if user == 'admin' and passd == 'password':
messagebox.showinfo('Success', "Login, was successfull!!")
#new_window()
else:
if not user and not passd:
messagebox.showwarning('Warning', "Invalid Username and Password")
elif user != 'admin':
messagebox.showwarning('Invalid', "Invalid Username")
elif passd != 'password':
messagebox.showwarning('Warning', "Invalid Password")
else:
messagebox.showwarning('Invalid', "Invalid Username and Password")
def signup_btn():
global window
window.destroy()
import Signup
from Signup import SignUp
signup_form = SignUp()
signup_form.mainloop()
'''def new_window():
def back_event(event = None):
newForm.destroy()
recreate_main_window()
window.destroy()
# Pansamantala
ctk.set_appearance_mode("system") # Modes: system (default), light, dark
ctk.set_default_color_theme("blue")
newForm = ctk.CTk()
newForm.title('LoginForm')
newForm.geometry('925x500+300+200')
newForm.resizable(False, False)
container_newF = CTkFrame(master=newForm)
container_newF.pack(fill = 'both', expand = True)
CTkLabel(master = container_newF, text='Welcome To Inventory System', width=50, height=50, font=CTkFont(family='ROBOTO', size=30, weight='bold'), anchor=CENTER).pack()
CTkButton(master = container_newF, text='Back', width=150, height=30, command=back_event).pack()
newForm.mainloop()
def recreate_main_window():
global window
window = ctk.CTk()
window.geometry("925x500+300+200")
window.resizable(False, False)
div_con = CTkFrame(master=window)
div_con.pack(fill='both', expand=True)
# Rest of your code to set up the main window interface (background, login form, etc.)
window.bind('<Return>', log_in)
window.bind('<Escape>', exit_app)
window.mainloop()'''
###### Main Window ######
class LogIn(ctk.CTk):
def init(self, *args, **kwargs):
super().init(*args, **kwargs)
ctk.set_appearance_mode("system")
self.window = ctk.CTk()
self.title("Login_Form")
self.geometry("925x500+300+200")
self.resizable(False, False)
# Main Container
self.div_con = CTkFrame(master=self)
self.div_con.pack(fill = 'both', expand = True)
# Left Column, ++++++++++Background
self.width, self.height = 300, 300
self.c_Path = os.path.dirname(os.path.realpath(file)) # Optional
self.bg_img = CTkImage(Image.open(self.c_Path + '/images/login.png'), size=(self.width, self.height))
CTkLabel(master = self.div_con, image=self.bg_img, text = '').place(relx = 0.12, rely = 0.18,)
# Right Column, ++++++++++++Login
self.login_con = CTkFrame(master=self.div_con)
self.login_con.pack(side = RIGHT, padx = 110)
# Elements
self.heading = CTkLabel(master = self.login_con, text='Sign in', font=('Sans serif fonts', 25,'bold'))
self.heading.pack(padx = 21, pady = 35)
self.user_name = CTkEntry(master = self.login_con, fg_color='#333333', placeholder_text='Username', height=35, width=300, border_width=0, border_color="white", font=('Roboto', 11))
self.user_name.pack(padx = 23, pady = 10)
self.userCTkFrame = CTkFrame(master = self.login_con, width=300, height=2, fg_color='white')
self.userCTkFrame.place(relx = 0.07, rely = 0.41)
self.password = CTkEntry(master = self.login_con, fg_color='#333333', placeholder_text='Password', show = '*', height=35, width=300, border_width=0, border_color="white", font=('Roboto', 11))
self.password.pack(padx = 23, pady = 10)
self.passCTkFrame = CTkFrame(master = self.login_con, width=300, height=2, fg_color='white')
self.passCTkFrame.place(relx = 0.07, rely = 0.57)
CTkButton(master = self.login_con, width=200, height=30, border_width=0, text="Log in", font=('Segoe UI', 10, 'bold'), command=log_in).pack(padx = 23, pady = 10, ipady = 5)
self.bind('<Return>', log_in)
self.bind('<Escape>', exit_app)
CTkLabel(master = self.login_con, text="Don't have an account yet ?", font=('Segoe UI', 9)).pack(padx = 91, ipady = 20, side = LEFT)
CTkButton(master = self.login_con, width=35, height=35, cursor = 'hand2', text='Sign up', text_color="white", fg_color="#333333", border_width=0, font=('Segoe UI', 10, 'bold'), command=signup_btn).place(relx = 0.58, rely = 0.85)
# int main()
if name == "main":
window = LogIn()
window.mainloop()
Signup.py
Python:
import os
import customtkinter as ctk
from customtkinter import *
from tkinter import messagebox
from PIL import Image
def log_in(event = None):
user = root.user_name.get().strip()
passd = root.password.get()
conf_passd = root.confirm_password.get()
r_email = root.recov_email.get().strip()
check_checkbox = root.checkbox_var.get()
if not check_checkbox:
messagebox.showinfo('Error', "You can't create an account if you don't agree w/ us")
else:
if not passd and not conf_passd and not conf_passd and not r_email:
messagebox.showwarning('Warning', "Please fill out all requirements")
else:
if user == '':
messagebox.showwarning('Invalid', "Please fill out Username")
elif passd == '':
messagebox.showwarning('Warning', "Please fill out password")
elif conf_passd == '':
messagebox.showwarning('Warning', "Confirm password is required")
elif r_email == '':
messagebox.showwarning('Warning', "Please fill out Recovery Email")
else:
if passd != conf_passd:
messagebox.showwarning('Warning', "Password and Confirm Password did not match")
else:
messagebox.showinfo('Success', "Login, was successfull!!")
redirect_Signin()
def exit_app(e):
root.destroy()
def redirect_Signin():
global root
root.destroy()
import Login
from Login import LogIn
Signin_form = LogIn()
Signin_form.mainloop()
def sign_in(e=None):
redirect_Signin()
# Self Sign_Up Form
class SignUp(ctk.CTk):
def [B]init[/B](self, *args, **kwargs):
super().[B]init[/B](*args, **kwargs)
ctk.set_appearance_mode("system")
self.root = ctk.CTk()
self.title("Signup_Form")
self.geometry("925x650+300+200")
self.resizable(False, False)
# Main Container
self.div_con = CTkFrame(master=self)
self.div_con.pack(fill = 'both', expand = True)
# Left Column, ++++++++++Background
self.width, self.height = 470, 470
self.c_Path = os.path.dirname(os.path.realpath([B]file[/B])) # Optional
self.bg_img = CTkImage(Image.open(self.c_Path + '/images/Signup_bg.png'), size=(self.width, self.height))
CTkLabel(master = self.div_con, image=self.bg_img, text = '').place(relx = 0.03, rely = 0.14)
# Right Column, ++++++++++++Login
self.signup_con = CTkFrame(master=self.div_con)
self.signup_con.pack(side = RIGHT, padx = 90)
# Elements Form
self.heading = CTkLabel(master = self.signup_con, text='Sign up', font=('Sans serif fonts', 25,'bold'))
self.heading.pack(anchor = CENTER, pady = 35)
self.user_name = CTkEntry(master = self.signup_con, placeholder_text='Username', height=35, width=300, border_width=0, border_color="white", font=('Roboto', 11))
self.user_name.pack(padx = 23, pady = 10)
self.password = CTkEntry(master = self.signup_con, placeholder_text='Password', show = '*', height=35, width=300, border_width=0, border_color="white", font=('Roboto', 11))
self.password.pack(padx = 23, pady = 10)
self.confirm_password = CTkEntry(master = self.signup_con, placeholder_text='Confirm Password', show = '*', height=35, width=300, border_width=0, border_color="white", font=('Roboto', 11))
self.confirm_password.pack(padx = 23, pady = 10)
self.recov_email = CTkEntry(master = self.signup_con, placeholder_text='Enter your recovery email', show = '*', height=35, width=300, border_width=0, border_color="white", font=('Roboto', 11))
self.recov_email.pack(padx = 23, pady = 10)
self.checkbox_var = BooleanVar()
self.checkbox = CTkCheckBox(master = self.signup_con, border_width=1, text="Agree to our Terms & Condition", font=('Segoe UI', 10,), checkbox_height=11, checkbox_width=11, variable=self.checkbox_var)
self.checkbox.pack(padx = 12, pady = 5)
# Creating a Separator widget
self.hr_width, self.hr_height = 350, 30
self.hr = CTkImage(Image.open(self.c_Path + '/images/Purple_line.png'), size = (self.hr_width, self.hr_height))
CTkLabel(master=self.signup_con, image=self.hr, text='').pack(fill = 'both')
self.signup_btn = CTkButton(master = self.signup_con, width=250, height=30, border_width=2, text="Log in", font=('Segoe UI', 10, 'bold'), command=log_in)
self.signup_btn.pack(padx = 23, pady = 10, ipady = 5)
self.bind('<Return>', log_in)
self.bind('<Escape>', exit_app)
CTkLabel(master = self.signup_con, text=" Have an acount already ?", font=('Segoe UI', 9)).pack(padx = 99, ipady = 20, side = LEFT)
CTkButton(master = self.signup_con, width=35, height=35, cursor = 'hand2', text='Sign in', text_color="white", fg_color="#333333", border_width=0, font=('Segoe UI', 10, 'bold'), command=sign_in).place(relx = 0.57, rely = 0.90)
if [B]name[/B] == "[B]main[/B]":
root = SignUp()
root.mainloop()
Sorry narin sa abala, Thanks in adv
Last edited: