Hướng dẫn tạo ứng dụng kiểm tra tốc độ đánh máy với Python từ A-Z
Giới thiệu
Trong bài viết này, chúng ta sẽ xây dựng một ứng dụng kiểm tra tốc độ đánh máy bằng Python sử dụng Tkinter. Ứng dụng này sẽ hiển thị một đoạn văn bản ngẫu nhiên, đo thời gian gõ và tính toán số từ mỗi phút (WPM – Words Per Minute).
1. Cấu trúc thư mục dự án
Chúng ta sẽ tổ chức dự án thành các tệp sau:
TypingSpeedTest/
│── main.py # Tệp chính để chạy ứng dụng
│── gui.py # Xây dựng giao diện bằng Tkinter
│── test.py # Xử lý logic kiểm tra tốc độ
│── texts.py # Chứa các đoạn văn bản mẫu
2. Tạo văn bản mẫu
Tạo tệp texts.py để chứa các đoạn văn bản dùng trong bài kiểm tra.
# texts.py
TEXTS = [
"Python is an amazing programming language.",
"Practice makes perfect. Keep typing to improve your speed.",
"The quick brown fox jumps over the lazy dog."
]
import random
def get_random_text():
return random.choice(TEXTS)
3. Xử lý logic kiểm tra tốc độ
Tạo tệp test.py để xử lý việc đo thời gian và tính WPM.
# test.py
import time
def calculate_wpm(start_time, end_time, text_entered, original_text):
elapsed_time = end_time - start_time # Tính thời gian gõ
words = len(original_text.split())
wpm = (words / elapsed_time) * 60 # Số từ mỗi phút
accuracy = sum(1 for a, b in zip(text_entered, original_text) if a == b) / len(original_text) * 100
return round(wpm, 2), round(accuracy, 2)
4. Thiết kế giao diện với Tkinter
Tạo tệp gui.py để xây dựng giao diện.
# gui.py
import tkinter as tk
from tkinter import messagebox
import time
import texts
import test
def start_test():
global start_time, original_text
original_text = texts.get_random_text()
text_label.config(text=original_text)
start_time = time.time()
entry.delete(0, tk.END)
entry.focus()
def check_result():
end_time = time.time()
text_entered = entry.get()
wpm, accuracy = test.calculate_wpm(start_time, end_time, text_entered, original_text)
messagebox.showinfo("Kết quả", f"Tốc độ: {wpm} WPM\nĐộ chính xác: {accuracy}%")
def create_gui(root):
global text_label, entry
tk.Label(root, text="Kiểm tra tốc độ đánh máy", font=("Arial", 16)).pack()
text_label = tk.Label(root, text="", wraplength=400, font=("Arial", 14))
text_label.pack(pady=10)
entry = tk.Entry(root, width=50, font=("Arial", 14))
entry.pack(pady=10)
tk.Button(root, text="Bắt đầu", command=start_test).pack()
tk.Button(root, text="Kiểm tra kết quả", command=check_result).pack()
5. Chạy ứng dụng
Tạo tệp main.py để khởi chạy ứng dụng.
# main.py
import tkinter as tk
import gui
root = tk.Tk()
root.title("Kiểm tra tốc độ đánh máy")
gui.create_gui(root)
root.mainloop()
Kết luận
Vậy là chúng ta đã hoàn thành một trình kiểm tra tốc độ đánh máy với Python. Bạn có thể mở rộng thêm tính năng như hiển thị lịch sử kiểm tra, đếm lỗi sai, hoặc thêm chế độ luyện tập để làm ứng dụng hữu ích hơn!