🐍 Python How to redirect a file_1.py to file_2.py vice versa [TKinter] | Noob Question

PHC - Naethan

Forum Expert
Good Afternoon mga ka PHC

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 🫰
 

About this Thread

  • 0
    Replies
  • 552
    Views
  • 1
    Participants
Last reply from:
PHC - Naethan

Trending Topics

Online now

Members online
964
Guests online
1,571
Total visitors
2,535

Forum statistics

Threads
2,273,356
Posts
28,948,970
Members
1,235,715
Latest member
mjsimborio2
Back
Top