Python Pencere Kapatma

from tkinter import*
from tkinter import messagebox

pencere = Tk()
pencere.title("Admin Panel Giriş")
pencere.geometry("1350x730")
pencere.resizable(FALSE, FALSE)

kullanıcı = "admin"
şifre = "123"

def giris():
    s1 = str(kullanicigiris.get())
    s2 = str(sifregiris.get())
    if s1 == kullanıcı and s2 == şifre:
        messagebox.showinfo("Sistem", "Sisteme Başarıyla Giriş Yapıldı")
        pencere2 = Toplevel() 
        pencere2.title("Admin Panel")
        pencere2.geometry("1350x730")
        pencere2.resizable(FALSE, FALSE)
     
        
    else:
        messagebox.showerror("Sistem", "Kullanıcı Adı Veya Şifre Yanlış")
    kullanicigiris.delete(0, "end")
    sifregiris.delete(0, "end")

def sifreunuttum():
    messagebox.showinfo("Sistem", "Lütfen Sistem Yöneticisine Başvurun")
    


kullanici = Label(pencere, text= "Kullanıcı Adı", font= "verdana 16 bold")
kullanici.place(x= 200, y= 200)

sifre = Label(pencere, text= "Şifre", font= "verdana 16 bold")
sifre.place(x= 200, y= 300)

kullanicigiris = Entry(pencere, font= "Verdana 16", fg= "blue")
kullanicigiris.place(x= 200, y= 250)

sifregiris = Entry(pencere, font= "Verdana 16", show= "*", fg="blue")
sifregiris.place(x= 200, y= 350)

sifreunuttum = Button(pencere, text= "Şifremi Unuttum", font= "verdana 12 bold", command= sifreunuttum)
sifreunuttum.place(x= 200, y=390)

giris = Button(pencere, text= "Giriş", font= "verdana 16 bold", command= giris)
giris.place(x= 300, y= 450)



pencere.mainloop()

elimde böyle bir kod var ve pencere ve pencere2 arasında geçiş yaparken 1. pencereyi kapatmak istiyorum, yardım ederseniz çok sevinirim.

from tkinter import*
from tkinter import messagebox

def b():
    pencere2 = Tk()
    pencere2.title("Admin Panel")
    pencere2.geometry("1350x730")
    pencere2.resizable(FALSE, FALSE)

    pencere2.mainloop()
    
    

def a():

    pencere = Tk()
    pencere.title("Admin Panel Giriş")
    pencere.geometry("1350x730")
    pencere.resizable(FALSE, FALSE)

    kullanıcı = "admin"
    şifre = "123"

    def giris():
        s1 = str(kullanicigiris.get())
        s2 = str(sifregiris.get())
        if s1 == kullanıcı and s2 == şifre:
            messagebox.showinfo("Sistem", "Sisteme Başarıyla Giriş Yapıldı")
            pencere.destroy()

            b()
            
            
            
         
            
        else:
            messagebox.showerror("Sistem", "Kullanıcı Adı Veya Şifre Yanlış")
            kullanicigiris.delete(0, "end")
            sifregiris.delete(0, "end")

    def sifreunuttum():
        messagebox.showinfo("Sistem", "Lütfen Sistem Yöneticisine Başvurun")
        


    kullanici = Label(pencere, text= "Kullanıcı Adı", font= "verdana 16 bold")
    kullanici.place(x= 200, y= 200)

    sifre = Label(pencere, text= "Şifre", font= "verdana 16 bold")
    sifre.place(x= 200, y= 300)

    kullanicigiris = Entry(pencere, font= "Verdana 16", fg= "blue")
    kullanicigiris.place(x= 200, y= 250)

    sifregiris = Entry(pencere, font= "Verdana 16", show= "*", fg="blue")
    sifregiris.place(x= 200, y= 350)

    sifreunuttum = Button(pencere, text= "Şifremi Unuttum", font= "verdana 12 bold", command= sifreunuttum)
    sifreunuttum.place(x= 200, y=390)

    giris = Button(pencere, text= "Giriş", font= "verdana 16 bold", command= giris)
    giris.place(x= 300, y= 450)



    pencere.mainloop()

a()

gibi yapılabilir.

daha kolay bir yolu olamaz mı kod satırlarını bu kadar değiştirmeden ?

pencere.destroy() diyebilirsiniz. Fakat üstteki arkadaş daha düzenli olması açısından fonksiyon oluşturmuş

Denedim fakat hata alıyorum.

Pencereleri Kapatıp açmak yerine pencereler arasında geçiş yapabilirsiniz. Nasıl mı ? Örnek Kod:

import tkinter as tk

def show_frame(frame):
    frame.tkraise()

window = tk.Tk()

window.rowconfigure(0, weight=1)
window.columnconfigure(0, weight=1)

ekran1 = tk.Frame(window)
ekran2 = tk.Frame(window)
ekran3 = tk.Frame(window)


for frame in (ekran1, ekran2, ekran3):
    frame.grid(row=0, column=0, sticky='nsew')

window_set = tk.Canvas(frame, height=450, width=750)
window_set.pack()

#==================Ekranlar==================
ekran1_yazi = tk.Label(ekran1, text="Şuan 1. Ekrandasınız").place(relx=0.45, rely=0.1)
ekran1_buton = tk.Button(ekran1, text="Ekran 2'ye Geç", command=lambda: show_frame(ekran2)).place(relx=0.45, rely=0.2)

ekran2_yazi = tk.Label(ekran2, text="Şuan 2. Ekrandasınız").place(relx=0.45, rely=0.1)
ekran2_buton = tk.Button(ekran2, text="Ekran 3'e Geç", command=lambda: show_frame(ekran3)).place(relx=0.45, rely=0.2)

ekran3_yazi = tk.Label(ekran3, text="Şuan 3. Ekrandasınız").place(relx=0.45, rely=0.1)
ekran3_buton = tk.Button(ekran3, text="Ekran 1'e Geç", command=lambda: show_frame(ekran1)).place(relx=0.45, rely=0.2)


show_frame(ekran1) #Program başladığında hangi ekranda başlayacağını yazıyoruz
window.mainloop()
1 Beğeni