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ı.
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.
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ı.