1

我一直在尝试寻找如何在 PySDL2 中创建一个无边框窗口(不是使用典型的窗口边框创建的)。

我查看了可以在网上找到的资源,但无法确定任何可以告诉我如何完成此任务的资源,尽管这显然是可能的


研究:

  1. 该链接指出,在大多数情况下,您的窗口周围都有一个边框和标题栏,但从未详细说明如何操作它。

  2. 我查看了 SDL 的 Window 的一些 API 参考,并没有看到可以操纵边框。(没有说他们不可能,只是没有提及)


尽管没有找到任何与 PySDL2 相关的内容,但我确实在此链接中发现:

sdl.setWindowBordered(window, bordered)
Sets the border state of a window.

不幸的是,我无法在我的简单示例脚本中使用它。

感谢您的关注!

4

1 回答 1

2

你需要确保你有 flag: 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())
于 2014-06-28T04:16:43.793 回答