gpt4 book ai didi

python - Pygame 中完全透明的窗口?

转载 作者:行者123 更新时间:2023-12-02 23:32:31 25 4
gpt4 key购买 nike

是否有可能在 Pygame 中获得完全透明的窗口(通过它看到桌面)?我已经找到了如何创建一个没有框架的窗口,但似乎没有任何明显的方法可以使其透明。

只要有适用于 Windows 和 Mac OS X 的解决方案,我就愿意结合特定于系统的技术/框架,但我不确定要寻找哪个方向。

我能找到的唯一主题recommended using wxPython ,这不是我可以为这个特定项目做的事情(需要是 Pygame)。

最佳答案

在 Windows 上,您可以创建纯色背景色,然后使用 Win32 API 函数 SetLayeredWindowAttributes() 设置窗口的透明度颜色。 。 (使用 pywin32 调用)

代码:

import pygame
import win32api
import win32con
import win32gui

pygame.init()
screen = pygame.display.set_mode((800, 600)) # For borderless, use pygame.NOFRAME
done = False
fuchsia = (255, 0, 128) # Transparency color
dark_red = (139, 0, 0)

# Create layered window
hwnd = pygame.display.get_wm_info()["window"]
win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE,
win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE) | win32con.WS_EX_LAYERED)
# Set window transparency color
win32gui.SetLayeredWindowAttributes(hwnd, win32api.RGB(*fuchsia), 0, win32con.LWA_COLORKEY)

while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True

screen.fill(fuchsia) # Transparent background
pygame.draw.rect(screen, dark_red, pygame.Rect(30, 30, 60, 60))
pygame.display.update()

结果:

Transparent Pygame Window

说明:

使用透明度颜色的窗口的任何部分都将是完全透明的。您可以查看游戏窗口后面的任何桌面图标或程序并与之交互。

要删除窗口边框,可以将 Pygame 的显示模式设置为 NOFRAME

screen = pygame.display.set_mode((800, 600), pygame.NOFRAME)

另请参阅:

关于python - Pygame 中完全透明的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/550001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com