You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS Ventura系统下如何用Tkinter显示带透明背景的图片?

新版MacOS下Tkinter实现透明背景图片的可行方案

旧代码依赖的systemTransparent和-transparent属性在新版MacOS(如Ventura、Sonoma)中已不再生效,可通过以下方法实现需求:

核心修改逻辑

  • 用-transparentcolor替代旧的-transparent属性,指定一个自定义的特殊颜色作为透明标记
  • 将窗口和标签的背景色统一设置为该特殊颜色,系统会自动将此颜色区域渲染为透明

修改后的可运行代码

import tkinter as tk

root = tk.Tk()
root.overrideredirect(True)
root.wm_attributes("-topmost", True)

# 选择一个图片中不会用到的特殊颜色作为透明标记
transparent_color = '#000001'
# 开启透明色效果,指定颜色区域将被系统渲染为透明
root.wm_attributes("-transparentcolor", transparent_color)
# 设置窗口背景为透明标记色
root.config(bg=transparent_color)

root.geometry("+300+300")

# 优先使用带alpha通道的PNG图片(GIF透明支持有限)
root.image = tk.PhotoImage(file="photoshop-icon.png")
# 标签背景同样设为透明标记色
label = tk.Label(root, image=root.image, bg=transparent_color)
label.pack()

root.mainloop()

额外注意事项

  • 建议使用PNG格式图片,其alpha通道对透明效果的支持比GIF更完善
  • 自定义透明色要确保不会出现在图片的非透明区域,否则对应区域也会被透明化
  • 若需要拖动窗口,可添加鼠标事件监听实现拖拽功能(overrideredirect(True)会移除默认标题栏的拖拽能力)

内容的提问来源于stack exchange,提问作者Noah Moscovici

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 17:55:18