Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để thay đổi alpha của hình dạng với Tkinter?

Widget Canvas là một trong những widget đa phương trong thư viện tkinter được sử dụng để cung cấp đồ họa cho bất kỳ ứng dụng nào. Nó có thể được sử dụng để vẽ các hình dạng, hình ảnh, các đối tượng hoạt hình hoặc bất kỳ hình ảnh phức tạp nào. alpha thuộc tính của hình dạng xác định rằng nếu chúng tôi cung cấp alpha giá trị đối với bất kỳ hình dạng nào, sau đó nó phải có một số hành vi minh bạch đối với cửa sổ mẹ của nó.

Để xác định thuộc tính alpha, chúng ta phải giả định rằng mọi hình dạng đều có một số màu trong đó và bất cứ khi nào chúng ta cung cấp giá trị alpha cho một hình dạng, thì nó phải được chuyển đổi thành Hình ảnh. Hình ảnh có thể được hiển thị bằng tiện ích Canvas.

Ví dụ

# 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()

Đầu ra

Chạy đoạn mã trên để xem thuộc tính alpha thay đổi như thế nào về hình dạng.

Làm cách nào để thay đổi alpha của hình dạng với Tkinter?