Süre ile kendini kapatan program

Bir sürü kısım okudum ancak ya ben anlamıyorum yada anlatımda problem var sitemizin belgelerinde de bulamadım maalesef datatime falan var ama istediğimi yok. Şimdi bende bir ekran açılıyor ve bu ekranın 5 sn sonra kapanması gerekiyor. Bunu nasıl yapabilirim? time modülü ile yapan arkadaşlar gördüm ama tabii bir anlatım olmadığı için programıma entegre edemedim varsa eğer istihza belgesi yoksa bana rica etsem anlatbilirmisiniz?

Sanırım ben bir şeyi yanlış anlıyorum ben programım duraklasın istemiyorum sonlansın istiyorum örneğin 5 den geriye saysın sonrasında ise program bulunduğu sayfayı kapatıp diğer sayfaya geçsin istiyorum

Hmm bir parça anladım gibi ancak yazdığım hali ile sadece programı daha geç başlatıyor başka bir işe yaramadı nedense?

import time

time.sleep() #Parantez içi saniye cinsinden olacak 

bunun import kısmını ilk satıra
time sleep kısmını kodun en alt satırına eklemelisiniz

Evet bunu denedim ve sadece program daha geç çalıştı sanırım yanlış yapıyorum bir şeyi

kodunu paylaşırsan belki yardımcı olacak biri çıkacaktır

def timer():
time.sleep(1)
form2.destroy()

def resimcik():
    form2=tk.Tk()
    form2.title("Hoşgeldiniz...")
    form2.geometry("300x100+500+300")
    foto = tk.PhotoImage(file="logo.gif")
    etiket = tk.Label(form2, image=foto).pack()
    timer()
    başlangıç()

resimcik()

ayrıca def ile değil direk koda eklediğim zaman program geç açlılıyor ve hiçbirşey değişmiyor

Kodun başında gerekli importları yaptım onunla alakalı bir eksik yok

Tkinter’da time.sleep kullanmak arayüzün donmasına sebep oluyor. Şuraya göz atın:

1 Beğeni

Bu dediğiniz işlemi denerken şöyle bir kod yazdım

def timer():
    yield 3
    print("elma")   
timer()

şimdi böyle iken 3 saniye bekleyip elma yazması gerekmez mi? programıma entegre etmeden önce deneme amaçlı böyle küçük bir kod yazdım ama

Hayır, yield’in programı bekletme ile bir alakası yok. Ben verdiğim linkte üreteçleri kullanarak programın beklemesini sağlıyorum. Sizin bu konuya gelmenize daha var sanırım, istiyorsanız sadece kodu kullanın.

import tkinter as tk
import time

def wait(f):
    def start():
        g = f()
        def repeater():
            try:
                pencere.after(next(g) * 1000, repeater)
            except StopIteration:
                pass
        repeater()
    return start

@wait
def komut():
    yield 3 # üç saniye bekliyor
    lb["text"] = 99
    yield 4 # dört saniye bekliyor
    lb["text"] = 78

pencere = tk.Tk()

lb = tk.Label(text=33)
lb.place(x=20, y=20)
b = tk.Button(text='bas', command=komut)
b.place(x=50, y=50)

pencere.mainloop()

Bu kod üzerinde değişimler yapın, def wait... kısmını silmeyin ve beklemesini istediğiniz her fonksiyonun başına @wait yazın.