Toplevel Ekranda message.showbox

Merhabalar,
toplevel olan bir ekranda messagebox.showinfo gösteriyorum. tamam’a basınca ebeveyn ekrana gidiyor. bunu nasıl engellerim?

toplevel'in oluştuğu fonksiyonda wait_window() metodunu kullanmayı bir deneyin.

toplevel.wait_window()

messagebox’dan sonra mı yoksa ekran=Toplevel() den sonra mı?

showinfo fonksiyonundan sonra eklemeniz gerekiyor.

Ne yazık ki olmadı. :frowning:

O zaman kodları paylaşın, sorunu bir görelim. Sorunu biraz daha anlaşılır bir şekilde anlatın.

Not: Kodların hepsini paylaşmayın, ilgili kısımları paylaşmanız yeterli.

Eee, sizin toplevel nerede, wait_window fonksiyonunu nerede çağırdınız?

üyelik kısmının tam halini tekrardan paylaşıyorum. bahsettiğim şey messagebox.showinfo uyarıları verdikten sonra ebevyn ekrana gitmesi. Yukarıda edit yaparak paylaştım. Ebeveyne gitmeyip toplevel’da kalsın istiyorum.

Yani uyeol isimli Toplevel'da kalmasını mı istiyorsunuz?

evet. hocam. uyarı mesajı geldikten sonra uyeol isimli Toplevel’da kalmasını istiyorum

E kalması lazım, bu toplevel’dan sonra bir şey mi oluşturmaya çalışıyorsunuz da hemen o ekrana geçiyor?

uyeol fonksiyonunun en son satırına uyeol.wait_window() yazıp denediniz mi?

def uyeol(veritab, ekran, my_image):
    uyeol = Toplevel(ekran)
    uyeol.geometry("1280x600")
    uyeol.title("Uye Ol")
    uyeol.resizable(FALSE, FALSE)
    frame = Label(master=uyeol, image=my_image)
    frame.pack(expand=True, fill="both")
    
    
    mailab = Label(uyeol, text="Mail Adresiniz  : ",width=15, font="30", bg="#2a1415" ,fg="white" )
    mailab.place(x=410,y=170)

    mailent = Entry(uyeol, width=25,font="30", bg="#b89073" , border="0")
    mailent.place(x=590, y=170)

    def limitSizePas(*args):
        value = sifresinir.get()
        if len(value) > 8: sifresinir.set(value[:8])
    sifresinir = StringVar()
    sifresinir.trace('w', limitSizePas)

    sifrelab = Label(uyeol, text="Şifreniz : (Max: 8)", width=15, font="30", bg="#2a1415" ,fg="white" )
    sifrelab.place(x=410, y=210)
    
    sifreent = Entry(uyeol, width=25, show="*", textvariable=sifresinir , font="30", bg="#b89073" , border="0")
    sifreent.place(x=590, y=210)
    
    adlab = Label(uyeol, text="Adınız :",width=15, font="30", bg="#2a1415" ,fg="white")
    adlab.place(x=410, y=250)
    
    adent = Entry(uyeol, width=25 , font="30", bg="#b89073" , border="0")
    adent.place(x=590, y=250)
    
    soyadlab = Label(uyeol, text="Soyadınız :",width=15, font="30", bg="#2a1415" ,fg="white")
    soyadlab.place(x=410, y=290)
    
    soyadent = Entry(uyeol, width=25 , font="30", bg="#b89073" , border="0")
    soyadent.place(x=590, y=290)

    gonder = Button(uyeol, text="UYE OL!", command=lambda: gonderFonk(veritab, mailent, sifreent, adent, soyadent), font=3, width=18 ,bg="#502b26" ,fg="#b89073")
    gonder.place(x=590, y=330)
    uyeol.wait_window()

Denedim. Yine “ekran” a gidiyor. Ön planda toplevel kalmıyor. arka plana atıyor

Yaptığınız değişiklikten sonraki kodların aldığı son şekle bir bakalım önce. Tüm kodları bir paylaşın size zahmet.

kodları özelden paylaşıyorum.

Lütfen buradan paylaşın.

1 Beğeni

Aslında çalıştırılabilir bir kod paylaşılması gerektiğini de belirtmek lazım.

Gerekli olanı paylaştım. Üye olma fonksiyonu çalışacak şekilde ekranı paylaştım.

Bende ana ekrana dönmedi. messagebox'tan gelen uyarıdan sonra hala uyeol ekranı aktif.

kodu tam olarak nereye yazdınız? bende o şekilde olmadı.

Sadece sizin kodları çalıştırdım.