python - 是否可以创建一个透明的 tk 窗口并在其上创建一个非透明的图片,仅使用 tk 和 PIL
问题描述
是否可以仅使用 tk 和 PIL 创建一个透明的 tk 窗口并在其上创建一个不透明的图像,或者如果我不可能使用哪个库? 图片链接
解决方案
您可以使用wm_attributes('-transparentcolor', '#abcdef')
将特定颜色设置为窗口的透明颜色,然后将窗口背景颜色设置为该颜色。
下面是一个示例代码:
from tkinter import *
root = Tk()
root.wm_attributes('-transparentcolor', '#abcdef')
root.config(bg='#abcdef')
root.geometry('400x200')
photo = PhotoImage(file='python.png')
Label(root, image=photo).place(x=50, y=50)
root.mainloop()
以及 Windows 10 中的结果:
更新:
为了使用透明图像,Canvas.create_image(..)
可以使用:
从 tkinter 导入 *
root = Tk()
root.geometry('400x200')
transparent_color = '#abcdef'
root.wm_attributes('-transparentcolor', transparent_color)
canvas = Canvas(root, bg=transparent_color)
canvas.pack(fill=BOTH, expand=1)
photo = PhotoImage(file='python-logo.png')
canvas.create_image(50, 50, image=photo, anchor=N+W)
root.mainloop()
结果:
推荐阅读
- arrays - 返回包含在选项中的数组的迭代器
- typescript - 原始类等于
- python - 顺序模型张量流中的自定义层
- javascript - 尝试将数据写入控制台时 Firebase 抛出错误
- javascript - 如何在 React 中定位单个 map()'d 元素?
- visual-studio-code - Visual Studio 代码左侧的面板消失了
- r - 从R中的行制作列联表
- matlab - MATLAB CREATE DLL:命令“链接”以返回值“1”退出
- java - JFormattedTextField 仅返回默认值
- azure - Azure 的新用户:访问查询编辑器