कैनवास विजेट टिंकर लाइब्रेरी में सबसे बहुमुखी विजेट्स में से एक है। आम तौर पर, इसका उपयोग आकृतियों को आकर्षित करने, वस्तुओं को चेतन करने और किसी भी एप्लिकेशन में जटिल ग्राफिक्स बनाने के लिए किया जाता है। आयत जैसी आकृतियाँ बनाने के लिए, हम 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()
आउटपुट
उपरोक्त कोड को चलाने से कैनवास में कई पारदर्शी आयत प्रदर्शित होंगे।