example color python tkinter alpha

python - color - ¿Cómo puedo variar el alfa de una forma con Tkinter?



tkinter grid center (3)

Tengo el siguiente código que usa Tkinter para crear una ventana y dibujar formas en un lienzo dentro de ella.

from Tkinter import * class Example(Frame): def __init__(self, parent): Frame.__init__(self, parent) self.parent = parent self.initUI() def initUI(self): self.parent.title("Colors") self.pack(fill=BOTH, expand=1) canvas = Canvas(self) canvas.create_oval(10, 10, 80, 80, outline="red", fill="green", width=2) canvas.create_oval(110, 10, 210, 80, outline="#f11", fill="#1f1", width=2) canvas.create_rectangle(20, 50, 300, 100, outline="black", fill="red", width=2) canvas.pack(fill=BOTH, expand=1) if __name__ == ''__main__'': root = Tk() ex = Example(root) root.geometry("400x400+100+100") # WIDTHxHEIGHT+X+Y root.mainloop()

El rectángulo se encuentra en la parte superior de los dos óvalos. ¿Hay alguna manera de que pueda hacer que el rectángulo sea parcialmente transparente (para que se puedan ver los contornos de los óvalos)?


No estoy del todo seguro, pero creo que no es posible establecer un color RGBA como color de relleno de un elemento de lienzo. Sin embargo, puedes darle una oportunidad a la opción de stipple :

canvas.create_rectangle(20, 50, 300, 100, outline="black", fill="red", width=2, stipple="gray50")


No puede cambiar el alfa de los elementos en un lienzo.


Una idea es hacer una imagen png rectangular con colores semitransparentes. Luego use create_image en lugar de create_rectangle.