ক্যানভাস উইজেট টিকিন্টার লাইব্রেরির সবচেয়ে বহুমুখী উইজেটগুলির মধ্যে একটি। সাধারণত, এটি আকার আঁকতে, বস্তুকে অ্যানিমেট করতে এবং যেকোনো অ্যাপ্লিকেশনে জটিল গ্রাফিক্স তৈরি করতে ব্যবহৃত হয়। আয়তক্ষেত্রের মতো আকার তৈরি করতে, আমরা create_rectangle(x,y, x+ প্রস্থ, y+ উচ্চতা, **বিকল্প) ব্যবহার করি। পদ্ধতি প্রস্থ, উচ্চতা, ফিল এবং বিজি, সীমানা প্রস্থ এর মতো বৈশিষ্ট্য যোগ করে আমরা ক্যানভাসে আইটেমটি কনফিগার করতে পারি , ইত্যাদি।
আলফা ক্যানভাসে সম্পত্তি ক্যানভাস আইটেমের স্বচ্ছতা সংজ্ঞায়িত করে। যাইহোক, সম্পত্তি টিকিন্টার লাইব্রেরিতে পাওয়া যায় না; সুতরাং, আকারে স্বচ্ছতা বৈশিষ্ট্য প্রদানের জন্য আমাদের অবশ্যই একটি ফাংশন সংজ্ঞায়িত করতে হবে। স্বচ্ছতা বৈশিষ্ট্যের জন্য ফাংশন তৈরি করার ধাপগুলি হল,
- একটি অন্তর্নির্মিত ফাংশন সংজ্ঞায়িত করুন create_rectangle(x,y,a,b, **options) .
- আলফা গণনা করুন প্রতিটি রঙের জন্য (RGB) যা অবশ্যই আকৃতিতে প্রদান করতে হবে।
- পূর্বনির্ধারিত আলফা সরান (যদি প্রযোজ্য হয়) pop() ব্যবহার করে আকৃতি থেকে .
- winfo_rgb() ব্যবহার করে অঞ্চলে আকৃতির রঙ গণনা করুন এবং আলফা যোগ করুন আকারে।
- যেহেতু একটি সদ্য তৈরি আকৃতিতে ভিন্ন রঙ এবং পটভূমি থাকবে, তাই এটিকে একটি চিত্র হিসাবে ব্যবহার করতে হবে।
- চিত্রটি ক্যানভাসে সহজেই প্রদর্শিত হতে পারে।
উদাহরণ
# Import the required libraries
from tkinter import *
from PIL import Image, ImageTk
# Create an instance of tkinter frame
win= Tk()
# Set the size of the tkinter window
win.geometry("700x350")
# Store newly created image
images=[]
# Define a function to make the transparent rectangle
def create_rectangle(x,y,a,b,**options):
if 'alpha' in options:
# Calculate the alpha transparency for every color(RGB)
alpha = int(options.pop('alpha') * 255)
# Use the fill variable to fill the shape with transparent color
fill = options.pop('fill')
fill = win.winfo_rgb(fill) + (alpha,)
image = Image.new('RGBA', (a-x, b-y), fill)
images.append(ImageTk.PhotoImage(image))
canvas.create_image(x, y, image=images[-1], anchor='nw')
canvas.create_rectangle(x, y,a,b, **options)
# Add a Canvas widget
canvas= Canvas(win)
# Create a rectangle in canvas
create_rectangle(50, 110,300,280, fill= "blue", alpha=.3)
create_rectangle(40, 90, 420, 250, fill= "red", alpha= .1)
canvas.pack()
win.mainloop() আউটপুট
উপরের কোডটি চালানোর ফলে ক্যানভাসে একাধিক স্বচ্ছ আয়তক্ষেত্র দেখাবে।
