【发布时间】:2013-03-06 06:54:36
【问题描述】:
我有以下代码使用 Tkinter 创建一个窗口并在其中的画布上绘制形状。
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()
矩形位于两个椭圆的顶部。有什么办法可以使矩形部分透明(这样椭圆的轮廓可以看到)?
【问题讨论】:
-
非常聪明!我想知道如何将其推广到其他形状(透明椭圆、多边形、线条、文本等)。令人惊讶的是,Tkinter 能够绘制透明图像,但不支持其他原语。
-
我发布了一个答案并指出它不是“真正的 alpha”。