القائمة الرئيسية

الصفحات

طريقة برمجة تطبيق لتتبع السعرات الحرارية باستخدام Python

How-to-Coding-Calorie-Tracker-App-in-Python، هيكل تطبيق Python، تطبيق CLI Python، واجهة مستخدم Python، تطبيق سطر أوامر Python، تفاعل المستخدم Python، تحديد الهدف Python، هدف السعرات الحرارية Python، عرض البيانات Python، إجمالي السعرات الحرارية Python، تخزين بيانات Python، قاموس Python، بيانات غذائية Python، وظائف Python، حساب السعرات الحرارية Python، إضافة بيانات Python، تتبع السعرات الحرارية بايثون، تطبيق تغذية مفتوح المصدر Python، برمجة تطبيق صحي باستخدام Tkinter، Python SQLite لحفظ بيانات التغذية، مشروع بايثون بسيط للمبتدئين، تطبيق تتبع السعرات الحرارية بايثون، Python Calorie Tracker App، حساب السعرات الحرارية، واجهة بايثون باستخدام Tkinter، SQLite قاعدة بيانات بايثون، برمجة تطبيق صحي، تطبيق تتبع السعرات الحرارية Python، برمجة تطبيقات Python، مشروع Python صحي، تتبع السعرات الحرارية باستخدام Python، تطبيق إدارة السعرات الحرارية، برمجة تطبيق غذائي Python، برمجة تطبيق لتتبع السعرات الحرارية باستخدام بايثون، برمجة تطبيق لتتبع السعرات الحرارية باستخدام Python، دليل شامل خطوة بخطوة، How to Coding a Calorie Tracker App Using Python، How-to-Coding-Calorie-Tracker-App-in-Python، طريقة برمجة تطبيق لتتبع السعرات الحرارية باستخدام Python، Python SQLite لحفظ بيانات التغذية، Python Calorie Tracker App، مشروع بايثون، برمجة باستخدام Tkinter،



طريقة برمجة تطبيق لتتبع السعرات الحرارية باستخدام Python



يُعد تتبع السعرات الحرارية أداة أساسية لإدارة الوزن والحفاظ على نمط حياة صحي.
 في هذا المقال، سنستعرض خطوات برمجة تطبيق بسيط لتتبع السعرات الحرارية باستخدام لغة Python .
مع ازدياد الوعي بالصحة والتغذية، أصبحت تطبيقات تتبع السعرات الحرارية من أهم 
الأدوات التي تساعد الأشخاص على التحكم في نظامهم الغذائي. في هذا المقال،
 سنقوم بـ برمجة تطبيق تتبع السعرات الحرارية باستخدام بايثون Python خطوة بخطوة،
 وسنستخدم مكتبات مثل Tkinter لواجهة المستخدم، وSQLite لحفظ البيانات.


خطوات برمجة تطبيق تتبع السعرات الحرارية باستخدام Python 



import tkinter as tk
from tkinter import messagebox, ttk
import sqlite3
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from datetime import datetime

# --- إنشاء قاعدة البيانات ---
def init_db():
    conn = sqlite3.connect("calories.db")
    cursor = conn.cursor()
    cursor.execute("""
    CREATE TABLE IF NOT EXISTS meals (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        meal TEXT NOT NULL,
        calories INTEGER NOT NULL,
        date TEXT NOT NULL
    )
    """)
    conn.commit()
    conn.close()

# --- إضافة وجبة ---
def add_meal():
    meal = meal_entry.get()
    calories = cal_entry.get()
    date = datetime.now().strftime("%Y-%m-%d")

    if not meal or not calories:
        messagebox.showerror("خطأ", "يرجى إدخال جميع الحقول.")
        return

    try:
        calories = int(calories)
    except ValueError:
        messagebox.showerror("خطأ", "عدد السعرات يجب أن يكون رقمًا.")
        return

    conn = sqlite3.connect("calories.db")
    cursor = conn.cursor()
    cursor.execute("INSERT INTO meals (meal, calories, date) VALUES (?, ?, ?)", (meal, calories, date))
    conn.commit()
    conn.close()

    meal_entry.delete(0, tk.END)
    cal_entry.delete(0, tk.END)

    messagebox.showinfo("تم", "تمت إضافة الوجبة بنجاح!")
    show_meals()

# --- حذف وجبة ---
def delete_meal():
    selected_item = tree.selection()
    if not selected_item:
        messagebox.showerror("خطأ", "يرجى تحديد وجبة لحذفها.")
        return
    meal_id = tree.item(selected_item, 'values')[0]

    conn = sqlite3.connect("calories.db")
    cursor = conn.cursor()
    cursor.execute("DELETE FROM meals WHERE id = ?", (meal_id,))
    conn.commit()
    conn.close()
    messagebox.showinfo("تم", "تم حذف الوجبة بنجاح!")
    show_meals()

--




عرض سجل السعرات الحرارية *


        


# --- عرض سجل السعرات الحرارية ---
def show_meals():
    for item in tree.get_children():
        tree.delete(item)

    conn = sqlite3.connect("calories.db")
    cursor = conn.cursor()
    cursor.execute("SELECT id, meal, calories, date FROM meals ORDER BY date DESC")
    meals = cursor.fetchall()
    conn.close()

    total_calories = 0
    for id, meal, cal, date in meals:
        tree.insert("", tk.END, values=(id, meal, cal, date))
        total_calories += cal
    total_calories_label.config(text=f"مجموع السعرات الحرارية: {total_calories}")

# --- عرض رسم بياني للسعرات حسب التاريخ ---
def show_chart():
    conn = sqlite3.connect("calories.db")
    cursor = conn.cursor()
    cursor.execute("SELECT date, SUM(calories) FROM meals GROUP BY date ORDER BY date")
    data = cursor.fetchall()
    conn.close()

    if data:
        dates = [row[0] for row in data]
        calories = [row[1] for row in data]

        plt.figure(figsize=(10, 5))
        plt.plot(dates, calories, marker='o', linestyle='-', color='green')
        plt.xlabel('التاريخ')
        plt.ylabel('إجمالي السعرات الحرارية')
        plt.title('السعرات الحرارية اليومية')
        plt.xticks(rotation=45)
        plt.tight_layout()

        chart_window = tk.Toplevel(root)
        chart_window.title("رسم بياني للسعرات الحرارية")
        canvas = FigureCanvasTkAgg(plt.gcf(), master=chart_window)
        canvas_widget = canvas.get_tk_widget()
        canvas_widget.pack()
    else:
        messagebox.showinfo("معلومة", "لا توجد بيانات لعرض الرسم البياني.")

# --- واجهة المستخدم ---
root = tk.Tk()
root.title("🥗 تطبيق تتبع السعرات الحرارية")
root.geometry("500x600")
root.resizable(False, False)

# عنوان التطبيق
title_label = tk.Label(root, text="تطبيق تتبع السعرات الحرارية", font=("Arial", 16, "bold"))
title_label.pack(pady=10)

# إدخال اسم الوجبة
meal_label = tk.Label(root, text="اسم الوجبة:")
meal_label.pack()
meal_entry = tk.Entry(root, width=30)
meal_entry.pack(pady=5)

# إدخال عدد السعرات
cal_label = tk.Label(root, text="عدد السعرات:")
cal_label.pack()
cal_entry = tk.Entry(root, width=30)
cal_entry.pack(pady=5)

# زر إضافة الوجبة
add_button = tk.Button(root, text="➕ إضافة الوجبة", command=add_meal, bg="#4CAF50", fg="white", width=20)
add_button.pack(pady=10)

# عرض سجل الوجبات في جدول
tree = ttk.Treeview(root, columns=("ID", "الوجبة", "السعرات", "التاريخ"), show='headings')
tree.heading("ID", text="ID")
tree.heading("الوجبة", text="الوجبة")
tree.heading("السعرات", text="السعرات")
tree.heading("التاريخ", text="التاريخ")
tree.column("ID", width=30)
tree.column("الوجبة", width=150)
tree.column("السعرات", width=80)
tree.column("التاريخ", width=100)
tree.pack(pady=10)

# زر حذف الوجبة
delete_button = tk.Button(root, text="🗑️ حذف الوجبة", command=delete_meal, bg="#f44336", fg="white", width=20)
delete_button.pack(pady=5)

# زر عرض الرسم البياني
chart_button = tk.Button(root, text="عرض الرسم البياني", command=show_chart, bg="#2196F3", fg="white", width=20)
chart_button.pack(pady=10)

# عرض مجموع السعرات الحرارية
total_calories_label = tk.Label(root, text="مجموع السعرات الحرارية: 0", font=("Arial", 12, "bold"))
total_calories_label.pack(pady=10)

# --- تشغيل التطبيق ---
init_db()
show_meals()
root.mainloop()



* الخاتمة :
"في هذا المقال، قمنا ببرمجة تطبيق بسيط لتتبع السعرات الحرارية باستخدام لغة Python. 
يمكن توسيع هذا التطبيق ليشمل ميزات أكثر تقدمًا مثل حفظ البيانات في ملف، 
وقراءة البيانات من ملف، وإنشاء تقارير، وربما حتى تطوير واجهة مستخدم رسومية
 (GUI) باستخدام مكتبات مثل Tkinter أو PyQt. تذكر أن Python 
توفر أدوات قوية لإنشاء تطبيقات عملية ومفيدة.


أنت الان في اول موضوع
جدول المحتويات