วิดเจ็ต Canvas เป็นหนึ่งในวิดเจ็ตพหุภาคีในไลบรารี tkinter ซึ่งใช้เพื่อจัดเตรียมกราฟิกสำหรับแอปพลิเคชันใดๆ สามารถใช้วาดรูปร่าง รูปภาพ วัตถุเคลื่อนไหว หรือภาพที่ซับซ้อนใดๆ อัลฟ่า คุณสมบัติของรูปร่างกำหนดว่าถ้าเราให้ อัลฟ่า ค่าของรูปร่างใด ๆ ก็จะต้องมีพฤติกรรมโปร่งใสเกี่ยวกับหน้าต่างหลัก
ในการกำหนดคุณสมบัติอัลฟา เราต้องถือว่าทุกรูปร่างมีสีบางส่วนอยู่ในนั้น และเมื่อใดก็ตามที่เราระบุค่าอัลฟาให้กับรูปร่าง รูปร่างนั้นจะต้องถูกแปลงเป็นรูปภาพ สามารถแสดงรูปภาพได้โดยใช้วิดเจ็ต Canvas
ตัวอย่าง
# 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(60, 90,310,250, fill= "red", alpha=.3) canvas.pack() win.mainloop()
ผลลัพธ์
เรียกใช้โค้ดด้านบนเพื่อดูว่าคุณสมบัติอัลฟ่ามีรูปร่างแตกต่างกันอย่างไร