繁体   English   中英

如何使用 Tkinter 改变形状的 alpha?

[英]How can I vary a shape's alpha with Tkinter?

我有以下代码使用 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()

矩形位于两个椭圆的顶部。 有什么方法可以使矩形部分透明(因此可以看到椭圆的轮廓)?

我不完全确定,但我认为不可能将 RGBA 颜色设置为画布项目的填充颜色。 但是,您可以尝试使用stipple选项:

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

您无法更改画布上项目的 Alpha。

一个想法是制作一个带有半透明颜色的矩形 png 图像。 然后使用 create_image 而不是 create_rectangle。

您无法更改 alpha,但您可以使用常规tkinterstipple选项获得模拟透明度。 例如使用:

mycanvas.create_rectangle(X1, Y1, X2, Y2, fill=color, stipple="gray50")

产量:

调整大小1.png

男士们,还有其他类型的点画吗? 因为它在我的电脑上看起来真的很难看。 测试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM