Ich habe den folgenden Code, der Tkinter verwendet, um ein Fenster zu erstellen und Formen auf einer Leinwand darin zu zeichnen.Wie kann ich das Alpha einer Form mit Tkinter variieren?
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()
Das Rechteck sitzt auf den zwei Ovalen. Gibt es eine Möglichkeit, das Rechteck teilweise transparent zu machen (so dass man die Umrisse der Ovale sehen kann)?
Wie weißt du das? Wo auf der Erde ist es dokumentiert? Oh, die Frustration! –
@MatthewWalker: Ich weiß es, weil keine Dokumentation sagt, dass Sie können. Die offizielle tk-Dokumentation ist sehr präzise und vollständig und erwähnt nirgends Alpha-Kanäle. –
Danke für diese Klarstellung. Das würde die Bereitstellung einer Quelle ziemlich schwierig machen; o) Da es in Tkinter nativ nicht möglich ist, gibt es eine Alternative? Ich habe erwogen, mit Cairo ein Bild zu rendern, das in Canvas angezeigt werden kann. Irgendwelche besseren Ideen? –