ساعت زنگ دار با GUI در پایتون

برای تسلط در یک زبان برنامه نویسی باید پروژه ها و برنامه های مختلفی نوشت و بعد از تمرین فراوان می توان آن زبان را کاملا درک کرد و به صورت حرفه ای کار کرد. در این برنامه ما می خواهیم یک ساعت زنگ دار با گرافیک پایتون را بنویسیم.. شکی نیست که ساعت زنگ دار همیشه مفید است تا هر زمان که می خوابیم ، یا چرت بزنیم به ما هشدار دهد ، یا اینکه کار را به ما یادآوری کنیم و ما همیشه از این امر غافل می شویم

در این پروژه ما با زبان پایتون و GUI (رابط کاربری گرافیکی) در پایتون کار می کنیم. ما از رابط گرافیکی Tkinter استفاده کردیم که آموزش آن را به صورت جداگانه در وبسایت قرار داده ایم.

ابتدا ، مراحل ساخت برنامه ساعت زنگ دار در پایتون بررسی می کنیم:
گام اول وارد کردن کلیه کتابخانه ها و ماژول های مورد نیاز
گام دوم یک حلقه ایجاد می کنیم تا زمانی که کاربر مشخص نموده منتظر بماند و پس از رسیدن به زمان مورد نظر یک هشدار ایجاد کرده و به کاربر اطلاع دهد
گام سوم برای ورودی کاربر یک پنجره نمایش ایجاد کنید تا اطلاعات ورودی را دریافت کند.

 

ماژول‌های ضروری که باید در این پروژه نصب داشته باشید و به آنها احتیاج دارید :

ماژول Tkinter متعلق به یک کتابخانه استاندارد از GUI در پایتون است و به ما کمک می کند تا با هر اطلاعاتی که می خواهیم به کاربران نمایش دهیم و یا از آنها دریافت کنیم.
ماژول های Datetime و time در پایتون به ما کمک می کند تا با تاریخ و ساعت روز فعلی که کاربر در حال کار کردن است کار کنیم و آن را نیز تغییر دهیم.
ماژول Winsound دسترسی به تجهیزات اصلی پخش صدا را که توسط سیستم عامل های ویندوز تهیه شده اند فراهم می کند. این ماژول برای تولید صدا بلافاصله در هنگام هشدار ساعت مورد نیاز است.

  1. #Importing all the necessary libraries to form the alarm clock:
  2. from tkinter import *
  3. import datetime
  4. import time
  5. import winsound

 

بخش تعریف توایع و برنامه

 

  1. def alarm(set_alarm_timer):
  2. while True:
  3. time.sleep(1)
  4. current_time = datetime.datetime.now()
  5. now = current_time.strftime(“%H:%M:%S”)
  6. date = current_time.strftime(“%d/%m/%Y”)
  7. print(“The Set Date is:”,date)
  8. print(now)
  9. if now == set_alarm_timer:
  10. print(“Time to Wake up”)
  11. winsound.PlaySound(“sound.wav”,winsound.SND_ASYNC)
  12. break
  13. def actual_time():
  14. set_alarm_timer = f”{hour.get()}:{min.get()}:{sec.get()}”
  15. alarm(set_alarm_timer)

تابعی بنام alarm را تعریف کنید که آرگومان set_alarm_timer را می گیرد. حاوی یک حلقه زمانی با یک عملکرد  Boolean True است که باعث می شود برنامه به طور خودکار کار کند.
time.sleep (1)  اجرای دستورات بعدی داده شده را متوقف می کند و یک توقف یک ثانیه ای در برنامه دارد.
datetime.datetime.now () زمان فعلی را دریافت می کند
اکنون برای چاپ زمان و تاریخ برای چاپ تاریخ فعلی با تبدیل رشته ای با استفاده از strftime () استفاده می شود.
تابع دیگری را در اینجا با نام actual_time تعریف کنید که مقدار کاربر را برای تنظیم زنگ در فرمت رشته دریافت می کند.  set_alarm_timer زمانی است که کاربر انتخاب کرده و در این متغیر دخیره شده است.

اگر حلقه نشان دهد که اگر زمان ورود کاربر set_alarm_timer با زمان فعلی حلقه مطابقت داشته باشد ، پیام به صورت “زمان بیدار شدن” چاپ می شود.
winsound.SND_ASYNC  به محض برآورده شدن شرایط ، صدا تولید شده توسط سیستم را پخش می کند و به عنوان یادآوری ساعت زنگ دار عمل می کند.

 

بخش GUI

  1. clock = Tk()
  2. clock.title(“DataFlair Alarm Clock”)
  3. clock.geometry(“400×200”)
  4. time_format=Label(clock, text= “Enter time in 24 hour format!”, fg=”red”,bg=”black”,font=”Arial”).place(x=60,y=120)
  5. addTime = Label(clock,text = “Hour Min Sec”,font=60).place(x = 110)
  6. setYourAlarm = Label(clock,tclock = Tk()
  7. clock.title(“DataFlair Alarm Clock”)
  8. clock.geometry(“400×200”)
  9. time_format=Label(clock, text= “Enter time in 24 hour format!”, fg=”red”,bg=”black”,font=”Arial”).place(x=60,y=120)
  10. addTime = Label(clock,text = “Hour Min Sec”,font=60).place(x = 110)
  11. setYourAlarm = Label(clock,text = “When to wake you up”,fg=”blue”,relief = “solid”,font=(“Helevetica”,7,”bold”)).place(x=0, y=29)
  12. # The Variables we require to set the alarm(initialization):
  13. hour = StringVar()
  14. min = StringVar()
  15. sec = StringVar()
  16. #Time required to set the alarm clock:
  17. hourTime= Entry(clock,textvariable = hour,bg = “pink”,width = 15).place(x=110,y=30)
  18. minTime= Entry(clock,textvariable = min,bg = “pink”,width = 15).place(x=150,y=30)
  19. secTime = Entry(clock,textvariable = sec,bg = “pink”,width = 15).place(x=200,y=30)
  20. #To take the time input by user:
  21. submit = Button(clock,text = “Set Alarm”,fg=”red”,width = 10,command = actual_time).place(x =110,y=70)
  22. clock.mainloop()
  23. #Execution of the window.

پنجره برنامه را با نام  DataFlair Alarm Clock و با سایز (۴۰۰ * ۲۰۰) تعیین کردیم. فرمت زمان را با استفاده از time_format  به صورت ۲۴ ساعته انتخاب شده است.
عنوان دوم در بالای باکس های ورودی کاربر آورده شده است وعناوین  addTime “Hour Min Sec”  روی آن ها قرار دارد.
برای زیباتر شدن از کادر محاوره ای دیگری با عنوان “چه زمانی از خواب بیدار می شوید” استفاده کردیم  و کاربر باکلیک بر  setYourAlarm زمان تعیین شده خود را تایید می کند.
متغیرهایی StringVar () اطلاعات را از باکس ورودی دریافت می کنند.
دستور submit تابع  تعریف شده true_time را می گیرد و ساعت را به عنوان دکمه تنظیم شده برای شروع برنامه اجرا می کند.
Clock.mainloop () بخش مهمی است و آخرین فرمان برای جمع آوری کلیه دستورات قبلی با تنظیمات اصلی رنگ ، فونت ، عرض ، محور و غیره داده شده است و به محض اجرای برنامه ، پنجره را نمایش می دهد.

 

خب تا این مرحله برنامه ما کامل شده و اکنون کافیست کد را ذخیره و اجرا کنید و همچنین تغییرات دلخواه خود را روی این برنامه انجام دهید.

 

محمد صداقتی

2 thoughts on “ساعت زنگ دار با GUI در پایتون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *