如何用Tkinter改变形状的透明度?

如何用Tkinter改变形状的透明度?

Canvas小部件是tkinter库中的多边形小部件之一,可用于为任何应用程序提供图形。它可用于绘制形状、图像、动画对象或任何复杂的视觉元素。形状的 alpha 属性定义了如果我们给一个形状一个 alpha 值,那么它必须对其父窗口具有一些透明性行为。

要定义alpha属性,我们必须假定每个形状都有一些颜色,每当我们向一个形状提供一个alpha值,那么它必须被转换成一个图像。可以使用Canvas小部件显示图像。

例子

# 导入所需的库
from tkinter import *
from PIL import Image, ImageTk

# 创建tkinter窗口的实例
win= Tk()

# 设置tkinter窗口的大小
win.geometry("700x350")

# 存储新创建的图像
images=[]

# 定义一个函数来创建透明矩形
def create_rectangle(x,y,a,b,**options):
   if 'alpha' in options:
      # 计算每种颜色(RGB)的alpha透明度
      alpha = int(options.pop('alpha') * 255)
      # 使用fill变量填充形状的透明颜色
      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)
# 添加一个Canvas小部件
canvas= Canvas(win)

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

输出

运行上述代码以查看形状的alpha属性如何变化。

如何用Tkinter改变形状的透明度?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程