سوف نتعلم كيف:
- تستخدم عنصر
Canvas
في Tkinter. - ترسم أشكالًا هندسية (مستطيل، دائرة، خط...).
- تضيف نصوصًا أو صورًا داخل لوحة الرسم.
🧱 ما هو Canvas
؟
عنصر رسومي يسمح لك برسم:
- مستطيلات ودوائر وخطوط.
- نصوص وصور.
- عناصر تفاعلية يمكن تحريكها أو تعديلها.
✅ مثال عملي بسيط:
import tkinter as tk
# إنشاء النافذة
window = tk.Tk()
window.title("مثال على Canvas")
window.geometry("500x400")
# إنشاء لوحة الرسم
canvas = tk.Canvas(window, width=400, height=300, bg="white")
canvas.pack(pady=20)
# رسم مستطيل
canvas.create_rectangle(50, 50, 150, 150, fill="blue", outline="black")
# رسم دائرة (بيضاوي)
canvas.create_oval(200, 50, 300, 150, fill="red")
# رسم خط
canvas.create_line(0, 0, 400, 300, fill="green", width=3)
# رسم نص
canvas.create_text(200, 250, text="مرحبًا بك في Canvas", font=("Arial", 14), fill="purple")
window.mainloop()
✅ شرح الأوامر:
الدالة | الوظيفة |
---|---|
Canvas() |
إنشاء لوحة رسم |
create_rectangle(x1,y1,x2,y2) |
رسم مستطيل (من الزاوية العليا لليسرى إلى السفلى اليمنى) |
create_oval(...) |
رسم دائرة أو شكل بيضاوي داخل نفس الإحداثيات |
create_line(...) |
رسم خط بين نقطتين |
create_text(...) |
عرض نص في موقع معين داخل الـ Canvas |
🧠 ملاحظات:
Canvas
قوي جدًا في التطبيقات التي تحتاج رسومًا أو ألعابًا بسيطة.- يمكن استخدامه مع الأحداث (مثل السحب والضغط) لاحقًا.
✅ التمرين: لوحة رسم بسيطة لرسم مستطيلات ملونة
🎯 المطلوب:
أن تنشئ واجهة فيها:
- لوحة رسم
Canvas
. - زر عند الضغط عليه يرسم مستطيلًا عشوائي اللون في مكان عشوائي داخل اللوحة.
🧩 التحديات التي سنتعامل معها:
- استخدام مكتبة
random
لتحديد موقع ولون المستطيل. - التعامل مع
Canvas
لإضافة عناصر ديناميكية. - استخدام
create_rectangle()
وfill
لتلوين الشكل.
🧾 الحل الكامل:
import tkinter as tk
import random
# إنشاء النافذة
window = tk.Tk()
window.title("لوحة رسم مستطيلات عشوائية")
window.geometry("500x450")
# إنشاء لوحة الرسم
canvas = tk.Canvas(window, width=400, height=300, bg="white")
canvas.pack(pady=20)
# قائمة ألوان
colors = ["red", "blue", "green", "yellow", "purple", "orange", "cyan"]
# دالة رسم مستطيل عشوائي
def draw_random_rectangle():
x1 = random.randint(0, 300)
y1 = random.randint(0, 200)
x2 = x1 + random.randint(30, 100)
y2 = y1 + random.randint(30, 100)
color = random.choice(colors)
canvas.create_rectangle(x1, y1, x2, y2, fill=color, outline="black")
# زر للرسم
draw_button = tk.Button(window, text="ارسم مستطيل", command=draw_random_rectangle)
draw_button.pack()
window.mainloop()
✅ النتيجة:
- عند الضغط على زر "ارسم مستطيل"، يتم رسم مستطيل عشوائي داخل اللوحة بلون مختلف كل مرة.
🧠 شرح سريع:
الجزء | الوظيفة |
---|---|
random.randint() |
لتحديد موقع عشوائي داخل اللوحة |
random.choice() |
لاختيار لون عشوائي من القائمة |
create_rectangle() |
لرسم المستطيل على Canvas |
0 تعليقات