【发布时间】:2019-07-05 08:59:22
【问题描述】:
我需要让我的 tkinter 矩形透明。有人知道怎么做吗?
我尝试指定alpha=".5", opacity=".5",并尝试在颜色代码末尾添加两位数字:fill="#ff000066"。这些东西似乎都不起作用,我找不到正确的语法。
import tkinter
root = tkinter.Tk()
canvas = tkinter.Canvas(root, width=800, height=600)
canvas.pack()
canvas.create_rectangle(50, 50, 100, 100, fill="#ff0000", alpha=0.5)
root.mainloop()
这段代码给了我这个消息:_tkinter.TclError: unknown option "-alpha",所以这显然不是正确的做法。
【问题讨论】:
-
如果我错了,请见谅,但 IIRC tkinter 支持四种颜色格式:
#rgb、#rgba、#rrggbb和#rrggbbaa。当您尝试fill="#ff000080"时会发生什么? (我很确定这对 HTML/CSS 有效,不确定对 tk)。 -
好像不支持#rrggbbaa。尝试你所说的会给我这个错误:_tkinter.TclError: invalid color name "#ff000080"
-
不是语法问题。
tkinter不支持Canvas上项目的透明度。有一些方法可以使整个顶级窗口透明,但是对于低于该级别的单个小部件(包括Canvas对象),没有任何东西可以控制它。 -
尝试添加
stipple='gray50',但这不是真正的透明。
标签: python tkinter colors transparency