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

PySimpleGUI如何仅让窗口透明?alpha_channel致全GUI透明的问题

PySimpleGUI实现窗口透明但元素可见的解决方案

方法1:利用transparent_color参数(跨平台)

这是PySimpleGUI自带的跨平台方案,通过将窗口背景色设置为一个特定的“透明标记色”,让系统自动渲染掉该颜色的区域,而其他颜色的元素会正常显示。

实现步骤

  • 选一个不常用的颜色值作为透明色(比如#000001,避免和元素颜色冲突)
  • 窗口初始化时,同时设置background_color和transparent_color为这个透明色
  • 所有元素使用与透明色不同的颜色,确保元素可见

代码示例

import PySimpleGUI as sg

# 定义专属透明色
TRANSPARENT_COLOR = '#000001'

# 布局:自定义关闭按钮
layout = [
    [sg.Button('关闭窗口', key='-CLOSE-', button_color=('white', '#FF5733'))]
]

# 创建透明窗口
window = sg.Window(
    '透明窗口示例',
    layout,
    background_color=TRANSPARENT_COLOR,
    transparent_color=TRANSPARENT_COLOR,
    no_titlebar=True,  # 隐藏默认标题栏,避免标题栏也被透明
    keep_on_top=True
)

# 事件循环
while True:
    event, values = window.read()
    if event == '-CLOSE-' or event == sg.WIN_CLOSED:
        break

window.close()

补充说明

  • 如果需要保留系统默认标题栏,去掉no_titlebar=True即可,但标题栏会和窗口背景一起透明
  • 该方法支持Windows、macOS、Linux所有主流平台

方法2:Windows平台专属(保留默认标题栏)

如果是Windows系统,可通过Win32 API直接控制窗口分层属性,实现窗口背景透明但保留默认标题栏的效果。

前置准备

先安装依赖库:

pip install pywin32

代码示例

import PySimpleGUI as sg
import win32gui
import win32api
import win32con

# 布局:自定义关闭按钮+默认标题栏
layout = [
    [sg.Button('关闭窗口', key='-CLOSE-', button_color=('white', '#FF5733'))]
]

window = sg.Window('透明窗口示例', layout, background_color='black')

# 获取窗口句柄并设置分层属性
hwnd = win32gui.FindWindow(None, '透明窗口示例')
win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE, 
                       win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE) | win32con.WS_EX_LAYERED)
# 将黑色设为透明色,窗口背景(黑色)会被透明,元素用其他颜色正常显示
win32gui.SetLayeredWindowAttributes(hwnd, win32api.RGB(0,0,0), 0, win32con.LWA_COLORKEY)

# 事件循环
while True:
    event, values = window.read()
    if event == '-CLOSE-' or event == sg.WIN_CLOSED:
        break

window.close()

补充说明

  • 这里通过LWA_COLORKEY模式指定透明色,只有窗口中该颜色的区域会被透明
  • 适合需要保留系统标题栏的场景,但仅支持Windows系统

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 06:53:09