شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش پایتون - Canvas

 (Canvas) یک ناحیه مستطیلی است که برای نقاشی تصاویر یا سایر طرح‌های پیچیده استفاده می‌شود. می‌توانید گرافیک، متن، ویجت‌ها یا فریم‌ها را بر روی یک canvas قرار دهید.

نحوه نوشتاری

در ادامه، سینتکس پایه برای ایجاد این ویجت آمده است:

w = Canvas ( master, option=value, ... )

پارامترها

  • master (اصلی) − این پارامتر نمایش‌دهنده پنجره‌ی والد می‌باشد.

  • options (گزینه‌ها) − در اینجا لیستی از معمول‌ترین گزینه‌های استفاده‌شده برای این ویجت آمده است. این گزینه‌ها می‌توانند به عنوان جفت کلید استفاده شود و همچنین برای جدا کردن  مقدار از کاما استفاده شوند.

ردیف گزینه و توضیح
1

bd (ضخامت حاشیه)

عرض حاشیه به پیکسل. پیش‌فرض 2 است.

2

bg (رنگ پس‌زمینه)

رنگ عادی پس‌زمینه.

3

confine (محدودیت)

اگر true (پیش‌فرض) باشد، محتوای کانوا نمی‌تواند خارج از scrollregion حرکت کند.

4

cursor (نشانگر)

نشانگر مورد استفاده در کانوا مانند arrow, circle, dot و غیره

5

height (ارتفاع)

اندازه کانوا در بُعد Y.

6

highlightcolor (رنگ تأکید)

رنگ نمایش داده‌شده در تأکیدِ فوکوس.

7

relief 

نوع مرز را مشخص می‌کند. برخی از مقادیر آن SUNKEN، RAISED، GROOVE و RIDGE هستند.

8

scrollregion (ناحیه‌ی اسکرول)

تاپل (w، n، e، s) که مشخص می‌کند که کانوا می‌تواند به چه اندازه‌ای اسکرول شود، که در آن w ناحیه سمت چپ، n ناحیه بالا، e ناحیه سمت راست و s ناحیه پایین را نشان می‌دهد.

9

width (عرض)

اندازه کانوا در بُعد X.

10

xscrollincrement (گام اسکرول افقی)

اگر این گزینه را به یک بُعد مثبت تنظیم کنید، کانوا فقط می‌تواند در مضرب‌های آن فاصله قرار گیرد، و این مقدار برای اسکرول کردن با واحدهای اسکرول کاربرد دارد، مانند زمانی که کاربر بر روی نوار اسکرول انتهایی یک اسکرول‌بار کلیک می‌کند.

11

xscrollcommand (دستور اسکرول افقی)

اگر کانوا امکان اسکرول داشته باشد، این ویژگی باید متد .set() اسکرول‌بار افقی باشد.

12

yscrollincrement (گام اسکرول عمودی)

مانند xscrollincrement عمل می‌کند، اما حرکت عمودی را کنترل می‌کند.

13

yscrollcommand (دستور اسکرول عمودی)

اگر کانوا امکان اسکرول داشته باشد، این ویژگی باید متد .set() اسکرول‌بار عمودی باشد.

ویجت Canvas می‌تواند از موارد استاندارد زیر پشتیبانی کند:

arc (کمان) − یک مورد کمان ایجاد می‌کند که می‌تواند مختصات یک کمان ساده باشد.

coord = 10, 50, 240, 210
arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")

image (تصویر) − تصویری ایجاد می‌کند، که می‌تواند نمونه‌ای از کلاس‌های BitmapImage یا PhotoImage باشد.

filename = PhotoImage(file = "sunshine.gif")
image = canvas.create_image(50, 50, anchor=NE, image=filename)

line (خط) − یک خط ایجاد می‌کند.

line = canvas.create_line(x0, y0, x1, y1, ..., xn, yn, options)

oval (بیضی) − یک مورد دایره یا بیضی در مختصات داده‌شده ایجاد می‌کند. این کد دو جفت مختصات را می‌گیرد؛ گوشه بالا چپ و گوشه پایین راست مستطیل محدودکننده‌ی بیضی.

oval = canvas.create_oval(x0, y0, x1, y1, options)

polygon (چندضلعی) − یک چندضلعی ایجاد می‌کند که باید حداقل سه رأس داشته باشد.

oval = canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options)

مثال 

برای امتحان کردن مثال زیر را اجرا کنید :

import tkinter

top = tkinter.Tk()

C = tkinter.Canvas(top, bg="blue", height=250, width=300)

coord = 10, 50, 240, 210
arc = C.create_arc(coord, start=0, extent=150, fill="red")

C.pack()
top.mainloop()

وقتی کد بالا اجرا می‌شود، نتیجه‌ی زیر را تولید می‌کند −

تک‌کانوا (TK Canvas)