Python Tkinter Hem saat hem alarm

Python tkinter ile saat ve alarm kurma programı yapmaya çalışıyorum ama hatalar veriyor sadece alarm veya sadece saat i ayrı çalıştırınca çalışıyor ama birleştiremiyorum kodları

kodlar birleşmiş hali bu şekilde
"from tkinter import *
from tkinter.ttk import *
from time import strftime
import time
import datetime
from pygame import mixer

root = Tk()
root.title(‘SetAlarm-Clock’)
root.geometry(“400x200”)

def setalarm():
alarmtime = f"{hrs.get()}:{mins.get()}:{secs.get()}"
print(alarmtime)
if (alarmtime != “::”):
alarmclock(alarmtime)

def alarmclock(alarmtime):
while True:
time.sleep(1)
time_now = datetime.datetime.now().strftime("%H:%M:%S")
print(time_now)
if time_now == alarmtime:
Wakeup = Label(root, font=(‘arial’, 20, ‘bold’),
text=“Wake up! Wake up! Wake up”, bg=“DodgerBlue2”, fg=“white”).grid(row=6, columnspan=3)
print(“Wake up!”)
mixer.init()
mixer.music.load(r’“C:\Users\Ali Tabak\Downloads\Alarm-zil-seslerini-indir_5.mp3”’)
mixer.music.play()
break

hrs = StringVar()
mins = StringVar()
secs = StringVar()

greet = Label(root, font=(‘arial’, 20, ‘bold’),
text=“Take a short nap!”).grid(row=1, columnspan=3)

hrbtn = Entry(root, textvariable=hrs, width=5, font=(‘arial’, 20, ‘bold’))
hrbtn.grid(row=2, column=1)

minbtn = Entry(root, textvariable=mins,
width=5, font=(‘arial’, 20, ‘bold’)).grid(row=2, column=2)

secbtn = Entry(root, textvariable=secs,
width=5, font=(‘arial’, 20, ‘bold’)).grid(row=2, column=3)

setbtn = Button(root, text=“set alarm”, command=setalarm, bg=“DodgerBlue2”,
fg=“white”, font=(‘arial’, 20, ‘bold’)).grid(row=4, columnspan=3)

timeleft = Label(root, font=(‘arial’, 20, ‘bold’))
timeleft.grid()

def time():
string = strftime(’%H:%M:%S %p’)
lbl.config(text=string)
lbl.after(1000, time)

lbl = Label(root, font=(‘calibri’, 40, ‘bold’),
background=‘purple’,
foreground=‘white’)

Placing clock at the centre

of the tkinter window

lbl.pack(anchor=‘center’)
time()

mainloop()"

threading modülünü projenize ekleyin ve bu linki inceleyin yapmak istediğinizle sanırım uyuşuyor.

birde kod yazarken `` yani (ALT GR + ,) tuşlarını kullanarak(iki sefer yaparsanız çalışır) tam ortasına, birden fazla satırda kod yazacaksanız da ` bundan altı tane yaparak tam ortadan itibaren kodunuzu yazın ki okunurluğu daha da belirgin olsun

1 Beğeni

lütfen kodları iki tane " ````` " işareti arasına koyup daha anlaşılır yapar mısınız.

sayfadan fazla anlamıyorum

burada sadece alarm kurulumu yapılıyor ben ek olarak saat de istiyorum

eğer yapabilirseniz bana yazıp gönderme şansınız var mı

Merhaba,

Geç gördüğüm için kusura bakmayın. Sıfırdan değilde sizin yazdıklarınıza az biraz modifiye ettim. Eklediğim tek şey bir fonksiyon ve bazı şeyleride sildim
Hemen aşağıda gösteriyorum:
from threading import Thread ekledim

mixer.music.load("C:\\Users\\Arif\\Desktop\\alarm-sesi.mp3")

ttk sınıfını sildim

lbl.place(x=20,y=130)
ile değiştirdim (evet bu belkide çokta önemli değildi ama yazdığınız kodu derlemede her seferinde hata ile karşılaştım ttk sınıfından ötürü diye düşünüyorum çünkü from tkinter.ttk import * yazdığınız da from tkinter import * ikisinde de olan örneğin buton sınıfı çakışıyordu diye düşünüyorum ondan dolayı kaldırdım.

yerine time_()

time adı ile adlandırdığın fonksiyonu üstte belirttiğim gibi time_ ile değiştirdim

yerine
setbtn = Button(root, text="set alarm",command=target
ve

def target():
    t1 = Thread(target=setalarm)
    t1.start()

gördüğünüz üzere bir fonksiyon oluşturdum böylece hem oluşturduğunuz arayüz “Yanıt Vermiyor” dan kurtuldu hemde ekrandaki dijital saatiniz işlemeye devam ediyor.

Belirttiğim gibi öyle ahım şahım şeyler eklemedim veya silmedim ufak dokunuşlar…

1 Beğeni

tab işaretlerinde bir sıkıntı var sanırım
süreki:
IndentationError: expected an indented block

böyle hata veriyor bana size zahmet olmaz ise taem halini atabilir misiniz destekleriniz için çok teşekkür ederim…

from tkinter import *
from time import strftime
import time
import datetime
from pygame import mixer
from threading import Thread

root = Tk()
root.title("SetAlarm-Clock")
root.geometry("400x200")

def target(): # yazdığınız kodlara eklenen tek fonksiyon
    t1 = Thread(target=setalarm)
    t1.start()
    
def setalarm():
    alarmtime = f"{hrs.get()}:{mins.get()}:{secs.get()}"
    print(alarmtime)
    if (alarmtime != "::"):
        alarmclock(alarmtime)

def alarmclock(alarmtime):
    while True:
        time.sleep(1)
        time_now = datetime.datetime.now().strftime("%H:%M:%S")
        print(time_now)

        if time_now == alarmtime:
            Wakeup = Label(root, font=('arial', 20, 'bold'),
            text="Wake up! Wake up! Wake up", bg="DodgerBlue2", fg="white").grid(row=6, columnspan=3)
            print("Wake up!")
            mixer.init()
            mixer.music.load("C:\\Users\\Arif\\Desktop\\alarm-sesi.mp3") # indirdiğim sesin yolu
            mixer.music.play()
            break

hrs = StringVar()
mins = StringVar()
secs = StringVar()

greet = Label(root, font=('arial', 20, 'bold'),text="Take a short nap!").grid(row=1, columnspan=3)

hrbtn = Entry(root, textvariable=hrs, width=5, font=('arial', 20, 'bold'))
hrbtn.grid(row=2, column=1)

minbtn = Entry(root, textvariable=mins,width=5, font=('arial', 20, 'bold'))
minbtn.grid(row=2, column=2)

secbtn = Entry(root, textvariable=secs,width=5, font=('arial', 20, 'bold'))
secbtn.grid(row=2, column=3)

setbtn = Button(root, text="set alarm",command=target,font=("arial",20,"bold"))
setbtn.grid(row=4, columnspan=3)

timeleft = Label(root, font=('arial', 20, 'bold'))
timeleft.grid()

def time_():
    string = strftime('%H:%M:%S %p')
    lbl.config(text=string)
    lbl.after(1000, time_)

lbl = Label(root, font=('calibri',40,'bold'),background='purple',foreground='white')
lbl.place(x=20,y=130)
time_()
mainloop()

Biraz fazla uzun olmuş okumaya üşendim ama bi göz gezdirdim çok güzel yapmışsınız elinize sağlık

1 Beğeni

çok teşekkürler ufak tefek button konumu vesaire eklemeler yapacağım tekrardan teşekkürler

1 Beğeni