【发布时间】:2019-09-26 21:58:21
【问题描述】:
当通过 pysdl2 玩 sdl2 时,我注意到了这种奇怪的副作用,即一旦 sdl 脚本运行不相关的窗口,这些窗口通常会在移动时变得半透明,现在却保持不透明。
如果不是那种唠叨的感觉,我不会那么介意 这表明我在做一些根本错误的事情。
谁能告诉我这里到底发生了什么?
这是我的脚本:
import sdl2
import sdl2.ext as se
import time
def main():
k = 2
event_buffer = (k * sdl2.SDL_Event)()
se.init()
window = se.Window("what the ?", size=(400, 300))
window.show()
while True:
window.refresh()
time.sleep(0.01)
sdl2.SDL_PumpEvents()
sdl2.SDL_PeepEvents(event_buffer, k, sdl2.SDL_GETEVENT,
sdl2.SDL_FIRSTEVENT, sdl2.SDL_LASTEVENT)
for event in event_buffer:
if not event.type:
continue
elif event.type == sdl2.SDL_QUIT:
se.quit()
break
else:
pass
event.type = 0
else:
continue
break
if __name__ == '__main__':
main()
这里是之前和之后的屏幕截图:
我的KDE 5.45.0 桌面的系统设置窗口没有运行 sdl 脚本,显示相关设置桌面Effects>Translucency。注意窗口是半透明的,因为我在拍照时拖动它。
相同,但运行 sdl 脚本。请注意,尽管我大力拖动窗口,但它仍然顽固地不透明。
【问题讨论】:
-
您能否在一个新的、干净的用户帐户上进行复制?
-
@genpfault 刚刚做了。不同计算机(相同操作系统)上的新用户帐户。同样的观察。
-
什么样的 KDE 会话,X11 或 Wayland? Python版本? pysdl2 版本?底层 SDL2 版本?
-
@genpfault 这是 Python 3.6.5 -- pysdl 0.9.6。 sdl2 在一台计算机上是 2.0.0,在另一台计算机上是 2.0.9。 KDE 会话我认为是 X11(有一个 kwin_x11 进程正在运行并且没有包含单词 wayland)
-
可能相关:我看到在一些 SDL 游戏中,kde 效果会被停用(并在游戏退出时重新激活)。
标签: python sdl kde window-management pysdl2