You are currently viewing آموزش ساخت ساعت دیجیتال در پایتون

خیلی باحال میشه بجای استفاده از ساعت پیشفرض سیستم، از برنامه ساعتی که خودمون نوشتیم استفاده کنیم 😃

می‌تونیم هرجور خواستیم تغییرش بدیم، رنگشو عوض کنیم، فونت و اندازشو تغییر بدیم و هرچیز دیگه ای که دوست داشته باشیم

یه کتابخونه ای تو پایتون هست به اسم tk یا tkinter که کمکمون میکنه برناممون بجای اینکه تو console اجرا بشه و فقط متن داشته باشه، یه windows داشته باشیم و دستمون باز باشه برای انجام هر کار گرافیکی. پس اول از همه این کتابخونه رو نصب می‌کنیم

pip install tk

حالا میریم برای نوشتن برناممون. میخوایم مثل همیشه همه چیز تو ساده ترین حالت ممکن باشه

from tkinter import *
from tkinter.ttk import *

from time import strftime

اول کتابخونه tkinter رو import میکنم تا بتونیم ازش استفاده کنیم. از کتابخونه time هم تابع strftime رو لازم داریم تا زمان سیستم رو دریافت کنیم

window = Tk()
window.title('Clock')

حالا یه window خالی میسازیم که توش زمان رو نشون بدیم و یه عنوان هم براش انتخاب میکنیم

lbl = Label(window, font=('calibri', 50, 'bold'),
            background='black',
            foreground='green1')

lbl.pack()

یه Label میسازیم که بهمون کمک میکنه تا یه متنی رو روی صفحه نشون بدیم. تو برنامه ما این متن همون زمان ساعتمون هست. فونت و رنگ و این چیزاروهم بهش میدیم که جذاب تر بشه و در آخر تو صفحه قرارش میدیم

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

برای نمایش ساعت تو لیبل که الان ساختیم، یه تابع می نویسیم و زمان رو به کمک تابع strftime دریافت میکنیم و نمایش میدیم.

این تابع فقط یک بار اجرا میشه و دیگه زمانمون ثابت می‌مونه. مثل ساعتی میشه که باتریش تموم شده. پس باید بگیم این تابع هر ثانیه تکرار بشه و تو خط آخر این کار رو انجام دادیم. چون واحد زمان میلی ثانیه هست 1000 میلی ثانیه همون 1 ثانیه میشه

displayTime()
mainloop()

در انتها تابع نمایش ساعتی که الان نوشتیم رو اجرا میکنیم و تابع mainloop که مربوط به کتابخونه tkinter هست تا برناممون درحال اجرا بمونه.

به همین راحتی برنامه نمایش ساعت رو نوشتیم. کد کامل برنامه به این صورت شد:

from tkinter import *
from tkinter.ttk import *

from time import strftime

# creating window
window = Tk()
window.title('Clock')

# create label
lbl = Label(window, font=('calibri', 50, 'bold'),
            background='black',
            foreground='green1')

lbl.pack()


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


displayTime()
mainloop()

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