Trăn đồng hồ đếm ngược

Xin chào các bạn, bài viết hôm nay mình chia sẻ hướng dẫn các bạn sử dụng Count Download Timer dùng để đếm ngược thời gian trong lập trình C# Winform

Đồng hồ đếm ngược là gì ?

Đồng hồ đếm ngược là đồng hồ đếm ngược. Bạn có thể sử dụng đồng hồ đếm ngược trên một trang web hoặc điện thoại di động của bạn

Đồng hồ sẽ đếm ngược từ một số hoặc ngày nhất định để biết thời gian bắt đầu hoặc kết thúc một sự kiện

Thời gian đếm ngược trong Python

import time

def countdown(time_sec):
    while time_sec:
        mins, secs = divmod(time_sec, 60)
        timeformat = '{:02d}:{:02d}'.format(mins, secs)
        print(timeformat, end='\r')
        time.sleep(1)
        time_sec -= 1

    print("stop")

countdown(5)
  • Phương thức divmod() lấy hai số và trả về một cặp số (một bộ) bao gồm thương và số dư của chúng
  • python
    >>> import tkinter
    0 ghi đè đầu ra cho mỗi lần lặp
  • Giá trị của
    python
    >>> import tkinter
    1 được giảm dần vào cuối mỗi lần lặp

Trong bài viết này, chúng ta sẽ xem cách tạo đồng hồ đếm ngược bằng Python. Mã sẽ lấy đầu vào từ người dùng về thời lượng đếm ngược tính bằng giây. Sau đó, trên màn hình có định dạng 'phút' sẽ bắt đầu đếm ngược. giây'. Chúng tôi sẽ sử dụng mô-đun thời gian ở đây

Tiếp cận

Trong dự án này, chúng ta sẽ sử dụng time module và hàm sleep() của nó. Làm theo các bước dưới đây để tạo đồng hồ đếm ngược

Đồng hồ đếm ngược là một cách lý tưởng để đặt mục tiêu hoàn thành các nhiệm vụ, ví dụ. giữ lời nhắc cho lò nướng, v. v. Đối với các ứng dụng quy mô lớn như công nghiệp, bộ hẹn giờ phức tạp được sử dụng, được thiết kế tùy chỉnh cho các mục đích khác nhau, không giới hạn như kích hoạt hoặc bật công tắc sau một khoảng thời gian đã đặt. Chúng tôi có thể đã nhận thấy một màn hình bảo vệ xuất hiện trên màn hình nền khi không hoạt động trong một thời gian. Điều này xảy ra để đếm thời gian tính toán thời gian rảnh rỗi của chúng tôi. Tương tự, tự động xuất hiện từ trang web, OTP hết hạn, captcha hết hạn đều dựa trên bộ hẹn giờ sẽ vô hiệu hóa các mật khẩu này sau khi hết khoảng thời gian

Nội dung chính Hiển thị

Đồng hồ đếm ngược Python project

Chúng tôi sẽ tạo đồng hồ đếm ngược đơn giản bằng python và hiển thị 2 thông báo, một thông báo có ứng dụng đã tạo và một thông báo khác trên màn hình để nhắc người dùng về thời gian trôi qua. Hiểu biết tốt về các chức năng và tiện ích Tkinter hữu ích để hiểu luồng mã là lý tưởng

Điều kiện quyết định đầu tiên của dự án

Dự án đồng hồ đếm ngược python sử dụng tkinter để phát triển GUI, mô-đun thời gian để tạo chế độ và lớp để tạo thông báo trên màn hình. Chúng tôi sử dụng Tkinter, một thư viện GUI tích hợp trong python. Để kiểm tra tính khả dụng của nó, hãy nhập nó

python
>>> import tkinter

Nếu thư viện được cài đặt, nó sẽ không hiển thị lỗi. Trong trường hợp lỗi xuất hiện, hãy sử dụng lệnh sau để cài đặt Tkinter trên hệ thống Linux

sudo apt-get install python3-tkinter

Trên hệ thống Windows, cài đặt lại python sẽ giải quyết được sự cố. Mô-đun thời gian là một thư viện hợp nhất và do đó không yêu cầu bất kỳ cài đặt nào

Bây giờ, để cài đặt plyer, vui lòng chạy lệnh bên dưới bằng pip

pip install plyer

Tải xuống mã Python Đồng hồ đếm ngược

Bạn có thể tải xuống mã nguồn cho Đồng hồ đếm ngược trong các liên kết đã cho. Đồng hồ đếm ngược và hẹn giờ

Construction file project

Có nhiều thư viện GUI được hỗ trợ bởi python như PyQT5, Kivy, Pyside2, v. v. Tkinter được nhiều nhà phát triển sử dụng rộng rãi và dễ dàng cho người mới bắt đầu thực hiện

Chúng ta hãy xem các bước để thực hiện dự án đồng hồ đếm ngược python

  1. Nhập mô-đun. time, tkinter và plyer
  2. Khởi tạo cửa sổ và khai báo kích thước
  3. Xác định chức năng cho bộ đếm thời gian và vị trí lưu trữ
  4. Create the input interface of user
  5. Thêm một nút để kích hoạt bộ đếm thời gian

Bây giờ hãy thảo luận chi tiết về công việc khai triển hoàn thiện

Vui lòng chơi với các giá trị và thay đổi phương thức nhập dữ liệu của bạn

1. Nhập các mô-đun cần thiết

#DataFlair Guide for python Countdown Timer
#Import necessary modules
from plyer import notification
from tkinter import messagebox
from tkinter import *
import time

Giải thích mã

  • from message input layer. Plyer là thư viện cung cấp cho chúng ta các tính năng truy cập bluetooth, wifi, chi tiết pin, gửi email, gps, v. v. Ở đây chúng tôi sử dụng thông báo để cung cấp thông báo trên màn hình được hiển thị khi hoàn thành đồng hồ đếm ngược python
  • from the input box tkinter. Để hiển thị lời nhắc, chúng tôi sử dụng hộp thư. Nó có thể tạo các hộp thông báo lỗi, để hiển thị thông tin, đặt câu hỏi, v. v
  • Nhập từ tkinter *. Chúng tôi sử dụng Tkinter để tạo giao diện người dùng cho ứng dụng. Tkinter phù hợp với người mới bắt đầu và chứa nhiều widget
  • input time. Để tạo độ lệch giữa mỗi giây, chúng tôi sử dụng thời gian mô đun

2. Khởi tạo cửa sổ và khai báo kích thước

#Assign class and set dimensions of the interface
window = Tk()
window.geometry("300x200")
window.title("DataFlair - python Countdown timer and notification")

giải thích mã

  • Cửa sổ = Tk(). Lớp Tkinter, Tk() được gán cho một đối tượng cửa sổ. Chúng tôi sử dụng cửa sổ đồng hồ đếm ngược python này để đặt các thành phần trên đối tượng, chẳng hạn như hộp văn bản, nút, v. v
  • window. learning(). Chỉ định chiều dài và chiều rộng của cửa sổ ứng dụng ứng dụng bằng hình học
  • window. Tiêu đề(). Chỉ định tiêu đề của ứng dụng. it is option

3. Xác định chức năng cho bộ đếm thời gian và vị trí lưu trữ

#Remove the placeholders for every entry field based on click   
def h_click(event):
       hour_entry.delete(0, 'end')        
def m_click(event):
       min_entry.delete(0, 'end')
def s_click(event):         
 sec_entry.delete(0, 'end')

Giải mã.
Chức năng giữ chỗ là tùy chọn.

  • def h_click(sự kiện). Chúng tôi thêm một trình giữ chỗ trong tiện ích nhập giờ, phút và giây. Do đó, khi người dùng chọn một mục nhập tiện ích, trình giữ chỗ sẽ bị xóa bằng cách xóa bằng cách sử dụng entry_widget. mục nhập (0,'end'), trong đó 0 là bắt đầu của ký tự giữ chỗ và 'end' biểu thị phần cuối của chuỗi giữ chỗ. Tương tự như vậy, chúng tôi mở rộng điều này cho các lần nhấp chuột của mục nhập tiện ích phút và giây
#Function to activate python countdown timer and show notifications once timer is up
def timer():
   #Since we use placeholders, we check if the user entered an integer
   try:
       timer_time = int(hour_entry.get())*3600 + int(min_entry.get())*60 + int(sec_entry.get())
      
   except:
       messagebox.showerror(message="Enter Valid Time")
   #The user cannot activate a timer with no time set
   #To update the timer with every decreasing second and display a notification   
   if timer_time >0:
       hour = 0
       min = 0
       sec = 0   
       #If minutes is more than 60, it has to be set to the next hour
       while timer_time >= 0:
           min, sec = divmod(timer_time,60)
           if min > 60:
               hour, min = divmod(min,60)
           #Set the declared variables with the new values to display               
           hours.set(hour)
           mins.set(min)
           secs.set(sec)
           #Sleep for 1 creates a delay of 1 second
           time.sleep(1)  
           #Update the changes on the window for every second
           window.update()
           #Decrement the timer value by 1
           timer_time -= 1
       #Create a desktop notification
       notification.notify(
           #Title of the notification,
           title = "TIMER ALERT",
           #Body of the notification
           message = "Hey amigo!\nDid you do what you wanted to achieve? \nIf not, try again with a new timer",
app_icon="/home/data-flair/Downloads/python-countdown-timer/bell.ico",
           #Notification stays for 30 seconds
           timeout  = 30,
       )
       #This notification is provided by tkinter with the created app
       messagebox.showinfo(message="Timer Complete!")

giải thích mã

  • chắc chắn show_entry_fields(). Khai báo hàm gọi bộ đếm thời gian
  • hẹn_giờ. Đặt biến hẹn giờ để chứa thời lượng của bộ hẹn giờ do người dùng tính bằng giây. Một giờ có 3600 giây và một phút có 60 giây tương ứng. Làm vậy, chúng tôi nhân giờ với 3600 và phút với 60, tổng chúng bằng giây
  • try…external. Nếu người dùng nhập một số nguyên, thì khối thử sẽ không chuyển vào khối ngoại trừ. Điều này là tôi có đặt các biến giờ, phút và giây thành kiểu dữ liệu nguyên. Nếu người dùng đưa ra một số float hoặc để trống, một cảnh báo sẽ bật lên
  • Nếu timer_time > 0. Hẹn giờ chỉ có thể bắt đầu khi người dùng nhập tối thiểu 1 giây
  • giờ = 0, phút = 0, giây = 0. Khai báo và khởi tạo biến
  • in when timer_time >= 0. Vòng lặp giảm timer_time cho đến khi nó đạt 0, đánh dấu thời gian kết thúc
  • phút, giây. Chuyển đổi timer_time thành phút và giây để hiển thị trên ứng dụng. divmod(giá trị, số chia) là hàm trả về 2 giá trị. Đầu tiên giá trị là thương số của phép chia timer_time cho 60 và giá trị thứ hai là phần còn lại thu được trong phép chia
  • if minimum > 60. Nếu phút lớn hơn 60, nó được chuyển đổi thành giờ và phút bằng cách sử dụng giờ, phút = divmod(min,60)
  • giờ. set (giờ), phút. set (phút), giây. set (giây). Set time, minutes and seconds used for the integer integer được khai báo bên ngoài hàm
  • time time. ngủ(1). Create a setting 1 seconds
  • timer_time -= 1. Di chuyển timer_time đi 1 để mô phỏng đồng hồ đếm ngược
  • thông báo. thông báo(). Tạo thông báo trên màn hình. Nó nhận các thông số. tiêu đề – tiêu đề của cảnh báo, tin nhắn – nội dung của thông báo, app_icon – (tùy chọn), ảnh hoặc biểu tượng, thời gian chờ – khoảng thời gian sau đó thông báo trôi qua. Thay thế đường dẫn cho app_icon bằng đường dẫn tuyệt đối cho biểu tượng của bạn
  • hộp tin nhắn. showinfo(). Hộp nhắc sử dụng làm thông báo trong ứng dụng đồng hồ đếm ngược python

4. Create the input interface of user

________số 8

giải thích mã

  • tiêu đề_nhãn. Để hiển thị văn bản không thể chỉnh sửa đã sửa trong cửa sổ đồng hồ đếm ngược, chúng tôi sử dụng nhãn. Label() has 2 tham số bắt buộc. window and text to display. Định vị trí nhãn hoặc bất kỳ tiện ích nào bằng pack()
  • IntVar(). Khai báo biến số nguyên giờ, phút, giây. Một lời nhắc nhở, trong thử thách. ngoại trừ chức năng hẹn giờ, được nâng cấp nếu người dùng cung cấp số thập phân hoặc các ký tự khác nhau
  • Lối vào(). Để nhận đầu vào của người dùng, chúng tôi sử dụng mục nhập tiện ích. Tham số là cửa sổ, chiều rộng của trường nhập, biến văn bản biểu thị biến số nguyên đã khai báo trước đó. Kiểu chữ chữ là tùy chọn
  • time_mục nhập. insert(). To insert an place 00 started by index 0. Chúng tôi mở rộng tương tự cho các tiện ích nhập phút và giây
  • time_mục nhập. không có I(). Tương tự như pack(), place() là một chức năng định vị khác. Hàm này lấy 2 tham số là khoảng cách từ lề trái và lề trên làm đúng độ (x,y)
  • hour_entry.bind(): Removal of the placeholder when the mouse clicks on the entry fields. <1> indicates mouse button 1 which is the left click.

5. Thêm một nút để kích hoạt bộ đếm thời gian

________số 8

Giải mã.
Đoạn mã này là tùy chọn

  • Cái nút(). Khi người dùng chọn hoặc nhấp vào một nút, một chức năng được gọi là. Do đó, để gọi các chức năng hoặc một nhiệm vụ cụ thể dựa trên đầu của người dùng (tương tác), chúng tôi sử dụng các nút

Đầu ra đồng hồ đếm ngược Python

Nhập thời gian cho đồng hồ đếm ngược và xem thông báo

BẢNG XÁC SUẤT

Chúng tôi đã tạo thành công đồng hồ đếm ngược python với các mô-đun plyer, tkinter và time. Dự án khám phá nhiều tính năng của Tkinter như tiện ích nhập cảnh, nhấp chuột, nút và giữ vị trí. Sử dụng hai cách, thông báo đã được tạo và sử dụng

Nếu bạn hài lòng với DataFlair, đừng quên làm cho chúng tôi hài lòng với những phản hồi tích cực của bạn trên Google. Facebook