Hướng dẫn làm ứng dụng quản lý công việc với Python từ A-Z
Giới thiệu
Trong bài viết này, chúng ta sẽ tạo một ứng dụng quản lý công việc đơn giản bằng Python, sử dụng Tkinter để thiết kế giao diện và SQLite để lưu trữ dữ liệu.
1. Cài đặt các thư viện cần thiết
Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt Python và các thư viện sau:
pip install tk sqlite3
2. 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:
ToDoApp/
│── main.py # Tệp chính để chạy ứng dụng
│── database.py # Xử lý cơ sở dữ liệu SQLite
│── gui.py # Xây dựng giao diện bằng Tkinter
└── todo.db # Cơ sở dữ liệu SQLite (tạo tự động)
3. Tạo cơ sở dữ liệu SQLite
Tạo tệp database.py để xử lý cơ sở dữ liệu.
# database.py
import sqlite3
def init_db():
conn = sqlite3.connect("todo.db")
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
task TEXT NOT NULL,
status TEXT DEFAULT 'Chưa hoàn thành'
)
""")
conn.commit()
conn.close()
def add_task(task):
conn = sqlite3.connect("todo.db")
cursor = conn.cursor()
cursor.execute("INSERT INTO tasks (task) VALUES (?)", (task,))
conn.commit()
conn.close()
def get_tasks():
conn = sqlite3.connect("todo.db")
cursor = conn.cursor()
cursor.execute("SELECT * FROM tasks")
tasks = cursor.fetchall()
conn.close()
return tasks
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 database
def add_task():
task = task_entry.get()
if task:
database.add_task(task)
task_entry.delete(0, tk.END)
load_tasks()
else:
messagebox.showwarning("Lỗi", "Vui lòng nhập công việc!")
def load_tasks():
task_list.delete(0, tk.END)
tasks = database.get_tasks()
for row in tasks:
task_list.insert(tk.END, f"{row[0]}. {row[1]} - {row[2]}")
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
import database
database.init_db()
root = tk.Tk()
root.title("Quản lý Công Việc")
task_entry = tk.Entry(root, width=40)
task_entry.pack(pady=10)
task_list = tk.Listbox(root, width=50)
task_list.pack(pady=10)
tk.Button(root, text="Thêm công việc", command=gui.add_task).pack()
tk.Button(root, text="Tải danh sách", command=gui.load_tasks).pack()
gui.load_tasks()
root.mainloop()
Kết luận
Vậy là chúng ta đã hoàn thành một ứng dụng quản lý công việc đơn giản bằng Python. Bạn có thể mở rộng thêm tính năng sửa, xóa, và đánh dấu hoàn thành để làm cho ứng dụng mạnh mẽ hơn!