Canvas ، والتي تعني "قماش" باللغة الصينية، تتوافق مع منطقة مستطيلة في وحدة Tkinter، مما يوفر للمستخدمين مساحة للرسم، حيث يمكنهم وضع الرسومات أو النصوص أو القطع الناقص أو الأزرار والمكونات الأخرى على القماش، ويمكنهم أيضًا رسم الأنماط.
قبل استخدام مكون Canvas، يجب علينا أولاً معرفة نظام إحداثيات الشاشة المقابل له.
نستخدم البكسل بشكل عام كوحدات للصور في أجهزة الكمبيوتر، ولكل بكسل قيمتان في مكون Canvas، تكون إحداثيات الزاوية اليسرى العليا من النافذة المقابلة (0،0)، مما يعني أنه في المستوى نظام إحداثيات مستطيل. المحور السيني والمحور الصادي المقابلان هما 0، وإحداثيات الزاوية اليمنى السفلية للنافذة هي القيمتان الأقصىتان من المحور السيني والمحور الصادي، كما هو موضح في الشكل:
عندما نضع مكونات في لوحة Canvas، يجب علينا التأكد من صحة إحداثيات المكونات.
هيكل بناء جملة Canvas هو:
my_canvas=Canvas(الفصل الأصلي، اختياري)
الفئة الأصلية هي اسم نافذة الطبقة العليا التي وضعناها، وتشمل الخيارات bd، وbg، والمتابعة، والمؤشر، والارتفاع، والعرض، و Highlightcolor، والإغاثة، وScrollregion، وما إلى ذلك. لقد تم تقديم هذه الخيارات مسبقًا، لذا لن أذهب. في الكثير من التفاصيل هنا شرح.
هناك العديد من الطرق لرسم الرسومات باستخدام مكون Canves، بما في ذلك create_line، و create_rectangle، و create_oval، و create_arc، و create_polygon، وسنقدمها واحدة تلو الأخرى أدناه.
تنسيق بناء الجملة كما يلي:
Canvas.create_line(x1,y1,x2,y2,...,xn,yn,options)
يمكننا استخدام هذه الطريقة لرسم خط مستقيم بين نقطتين أو n على اللوحة. الإحداثيات الأولى (x1, y1) هي نقطة البداية و(xn, yn) هي نقطة النهاية.
الرمز هو كما يلي:
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_line(30, 30,100,200,200,200,300,200,300,300)self.canvas.pack()tkinter.mainloop()m=TK()
التأثير كما هو موضح في الشكل:
الإحداثيات التي اخترناها هي (30,30)->(100,200)->(200,200)->(300,300) وبناء على الإحداثيات أعلاه نرسم الصورة أعلاه.
بناء الجملة لإنشاء مستطيل هو:
Canvas.create_rectangle(x1,y1,x2,y2, اختياري)
يحتاج المستطيل إلى إحداثيين فقط لتحديده، لذلك نحتاج فقط إلى إحداثيات (x1، y1) و (x2، y2) للزاوية العلوية اليسرى والزاوية اليمنى السفلية، ويكون الرمز كما يلي:
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_rectangle(100,100,200,200) self.canvas.pack()tkinter.mainloop()m=TK()
العملية كما هو مبين في الشكل:
تنسيق بناء الجملة كما يلي:
Canvas.create.oval(x1,y1,x2,y2,اختياري)
المواضع المقابلة للإحداثيات الأربعة هي كما هو موضح في الشكل:
تنسيق بناء الجملة كما يلي:
Canvas.create_arc(x1,y1,x2,y2,start=angle,extent=width,اختياري)
من بينها، تتوافق الإحداثيات مع القطع الناقص في الشكل أعلاه، وتتوافق القيمة في البداية مع زاوية بداية القوس، ويتوافق المدى مع نطاق زاوية عكس اتجاه عقارب الساعة للقوس.
الرمز هو كما يلي:
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_arc(60, 60,220,220,start=0,extent=120,fill='blue')self.canvas.pack()tkinter.mainloop()m=TK()
العملية كما هو مبين في الشكل:
تنسيق بناء الجملة كما يلي:
Canvas.create_polygon(x1,y1,x2,y2,...xn,yn,اختياري)
يتوافق كل إحداثي مع موضع، الأول هو الرأس الأول، والذي يتم ربطه بالتسلسل، والإحداثي الأخير يغلق المضلع تلقائيًا.
الرمز هو كما يلي:
importtkinterclassTK:def__init__(self):self.window=tkinter.Tk()self.canvas=tkinter.Canvas(self.window,width=300,height=300,bg='pink')self.canvas.create_polygon(150, 0,200,100,300,100,200,185,280,280,150,230,20,280,100,185,0,100,100,100,fill='red')self.canvas.pack()tkinter.mainloop()m=TK()
مخطط التشغيل هو كما يلي:
يمكنك رسم الرسومات التي تريدها عن طريق تغيير الإحداثيات. تتضمن المعلمات الاختيارية الشرطة والمخطط التفصيلي والسومث والعرض.
يمكننا رسم أنماط مختلفة من خلال القماش. بالطبع، له أيضًا وظائف أخرى، وسنستخدمه أيضًا في الأمثلة في القسم التالي.