当通过 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脚本,显示相关设置 Desktop Effects>Translucency
。注意窗口是半透明的,因为我在拍照时拖动它。
相同但运行sdl脚本。请注意,尽管我大力拖动窗口,但它仍然顽固地不透明。