如何设置 tkinter 框架的透明度?
How to set the transparency of the tkinter frame?
Python 版本 2.7
代码:
from Tkinter import *
root = Tk();
root.geometry ('{}x{}'.format(w,h));
left_frame = Frame(root, width = w*0.8, height=400, bg='#988C89');
right_frame = Frame(root, bg='#988C89', width = w*0.8, height=400 );
left_frame.grid_propagate(0);
right_frame.grid_propagate(0);
root.grid_rowconfigure(1, weight=1);
root.grid_columnconfigure(0, weight=1);
visible = Frame (root, width = w*0.8, height=400);
visible.grid(row=0, column=0, sticky="new");
如何调整可见框的透明度?
如果我添加代码
visible.attributes("transparentcolor","red")
我得到error : AttributeError: Frame instance has no attribute 'attributes'
并带有代码
visible.configure(bg='#988C8900');
我得到error : tkinter.TclError: invalid color name "#988C8900"
我该怎么办?
你只是不能在tkinter中设置框架的透明度。但是你可以设置整个 window 的透明度
root.attributes('-alpha', 0.5)
如果您正在使用 Windows,您也可以执行 root.attributes("-transparentcolor", "red")
,但同样它会应用于整个 window。
否则,您可以使用 Canvas
.
用透明部分覆盖 PNG 图像
Python 版本 2.7
代码:
from Tkinter import *
root = Tk();
root.geometry ('{}x{}'.format(w,h));
left_frame = Frame(root, width = w*0.8, height=400, bg='#988C89');
right_frame = Frame(root, bg='#988C89', width = w*0.8, height=400 );
left_frame.grid_propagate(0);
right_frame.grid_propagate(0);
root.grid_rowconfigure(1, weight=1);
root.grid_columnconfigure(0, weight=1);
visible = Frame (root, width = w*0.8, height=400);
visible.grid(row=0, column=0, sticky="new");
如何调整可见框的透明度?
如果我添加代码
visible.attributes("transparentcolor","red")
我得到error : AttributeError: Frame instance has no attribute 'attributes'
并带有代码
visible.configure(bg='#988C8900');
我得到error : tkinter.TclError: invalid color name "#988C8900"
我该怎么办?
你只是不能在tkinter中设置框架的透明度。但是你可以设置整个 window 的透明度
root.attributes('-alpha', 0.5)
如果您正在使用 Windows,您也可以执行 root.attributes("-transparentcolor", "red")
,但同样它会应用于整个 window。
否则,您可以使用 Canvas
.