PySDL2: 创建无边框窗口
我一直在尝试找出如何在PySDL2中创建一个没有边框的窗口(也就是那种不是用普通窗口边框创建的窗口)。
我在网上查了很多资料,但始终没能找到具体的步骤来实现这个功能,尽管看起来是可能的。
研究:
这个链接提到,在大多数情况下,你的窗口周围会有边框和标题栏,但没有更详细地说明如何去修改它。
我查看了一些关于SDL窗口的API参考,也没有看到可以修改边框的相关信息。(并不是说不能修改,只是没有提到)
虽然没有找到与PySDL2相关的内容,但我在这个链接上发现了:
sdl.setWindowBordered(window, bordered)
Sets the border state of a window.
不幸的是,我无法在我的简单示例脚本中让这个工作。
谢谢你的关注!
1 个回答
2
你需要确保你有这个标志:SDL_WINDOW_BORDERLESS
。
完整的例子:
import sys
import sdl2.ext
sdl2.ext.init()
window = sdl2.ext.Window("Hello World!", size=(640, 480), flags=sdl2.SDL_WINDOW_BORDERLESS)
window.show()
processor = sdl2.ext.TestEventProcessor()
processor.run(window)
稍微修改一下你的脚本,我们得到:
import sys
import sdl2.ext
def run():
sdl2.ext.init()
W = sdl2.ext.Window("Default",size=(400,300), flags=sdl2.SDL_WINDOW_BORDERLESS)
W.show()
running = True
while running:
events = sdl2.ext.get_events()
for event in events:
if event.type == sdl2.SDL_QUIT:
running = False
break
W.refresh()
return 0
if __name__ == "__main__":
sys.exit(run())