Computer >> Máy Tính >  >> Lập trình >> Python

Tạo đồng hồ đếm ngược với Python và Tkinter

Tkinter là một thư viện Python tiêu chuẩn để tạo các ứng dụng máy tính để bàn dựa trên GUI. Nó cung cấp nhiều chức năng, mô-đun và phương pháp có thể được sử dụng để triển khai chức năng của một ứng dụng.

Trong ví dụ này, chúng tôi sẽ tạo Thời gian đếm ngược bằng cách sử dụng các thư viện chuẩn Python như Tkinter và mô-đun thời gian. Chức năng cơ bản của ứng dụng của chúng tôi là chạy bộ đếm thời gian trong một khoảng thời gian nhất định. Nó sẽ có các thành phần sau,

  • Một widget Entry để đặt bộ hẹn giờ cho từng HH / MM / SS.

  • Nút A để thực thi chức năng countdownntimer () .

  • Một hàm countdownntimer () sẽ chuyển đổi chuỗi đầu vào thành một giá trị số nguyên liên quan đến HH, MM và SS.

  • Sử dụng update () , chúng tôi sẽ cập nhật cửa sổ liên quan đến chức năng và tiện ích đã cho.

Ví dụ

# Import the required library
from tkinter import *
import time

# Create an instance of tkinter frame
win = Tk()

# Set the size of the window
win.geometry('700x350')

# Make the window fixed to its size
win.resizable(False, False)

# Configure the background
win.config(bg='skyblue4')

# Create Entry Widgets for HH MM SS
sec = StringVar()
Entry(win, textvariable=sec, width=2,
   font='Helvetica 14').place(x=380, y=120)
sec.set('00')

mins = StringVar()
Entry(win, textvariable=mins, width=2, font='Helvetica 14').place(x=346, y=120)
mins.set('00')

hrs = StringVar()
Entry(win, textvariable=hrs, width=2, font='Helvetica 14').place(x=310, y=120)
hrs.set('00')

# Define the function for the timer
def countdowntimer():
   times = int(hrs.get()) * 3600 + int(mins.get()) * 60 + int(sec.get())
   while times > -1:
      minute, second = (times // 60, times % 60)
      hour = 0
      if minute > 60:
         hour, minute = (minute // 60, minute % 60)
      sec.set(second)
      mins.set(minute)
      hrs.set(hour)

      # Update the time
      win.update()
      time.sleep(1)
      if (times == 0):
         sec.set('00')
         mins.set('00')
         hrs.set('00')
      times -= 1

# Create a Label widget
Label(win, font=('Helvetica bold', 22), text='Set the Timer', bg='skyblue4', fg="white").place(x=260, y=70)

# Button widget to set the timer
Button(win, text='START', bd='2', bg='IndianRed1', font=('Helvetica bold', 10), command=countdowntimer).place(x=335, y=180)

win.mainloop()

Đầu ra

Nó sẽ hiển thị đồng hồ đếm ngược trong cửa sổ.

Tạo đồng hồ đếm ngược với Python và Tkinter

Nếu chúng tôi đặt bộ hẹn giờ bằng cách thay đổi giá trị trong các ô Mục nhập và nhấp vào nút "bắt đầu", bộ hẹn giờ sẽ nhanh chóng bắt đầu bộ hẹn giờ trong một khoảng thời gian nhất định.

Tạo đồng hồ đếm ngược với Python và Tkinter