如何在Pygame中禁用窗口关闭按钮?

4
在Pygame应用程序窗口中,最小化、调整大小和关闭按钮都存在。有没有一种方法可以禁用关闭(X)按钮?

你有类似于 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit(); sys.exit(); 的代码吗? - giodamelio
@giodamelio 是的,有这样的代码。我正在编写一个需要持续运行的桌面应用程序。我想要移除X按钮,以便用户不会意外关闭窗口。<br>但是mguica的建议很好。什么都不做。 - Neeraj
1
很好,当问题的答案本质上是“什么都不做”,并且被接受时,这是一件美妙的事情 :) - mgiuca
你可以使用win32gui并在关闭按钮上绘制 - https://dev59.com/Cmsz5IYBdhLWcg3w5MI0#7585663 - Stemboy4002
2个回答

6
我认为没有这样的功能,因为某些窗口管理器不允许您删除关闭按钮。但是,您可以编写事件处理程序,使关闭按钮执行任何操作,包括什么也不做。
为什么要防止用户关闭?如果只是提供一个游戏内“退出”按钮以确认和/或保存退出,那么当用户点击关闭按钮时,您可以执行相同的任务。

0

仅供参考,另一个选项是将以下参数传递给set_mode()方法调用:

pygame.display.set_mode(..., flags = pygame.NOFRAME)

然而,这会使整个窗口框架消失,包括顶部的移动窗口条和其他按钮,例如最小化,因此仅仅为了去掉X按钮而使用它有些过度。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接