首页 > 解决方案 > 是否可以让 tkinter 窗口透明但上面的小部件是实心的?

问题描述

我正在尝试用文本为我的屏幕制作一个叠加层,但是每当我打开一个透明的 tkinter 屏幕时:

app.wm_attributes("-alpha", 0.1)

标签和按钮也几乎完全透明,有没有办法解决这个问题?

标签: pythontkinter

解决方案


据我所知,tkinter 不支持单个小部件或颜色的 alpha 范围。

但你可以-transparentcolor改用。这使您可以选择一种颜色来应用完全透明度。

注意: -alpha-transparentcolor都是顶级属性,因此会影响添加到窗口的所有子小部件。

下面的代码说明了-transparentcolor.

import tkinter as tk

root = tk.Tk()
root['bg'] = 'grey'
root.attributes('-transparentcolor', 'grey')

lbl = tk.Label(text='Hello World!', font='Helvetica 36 bold', bg='green', fg='grey')
btn = tk.Button(text='Button', font='Helvetica 36', bg='grey', fg='blue')
canvas = tk.Canvas(bg='grey')

lbl.pack()
canvas.pack()
btn.pack()

root.mainloop()

推荐阅读