【问题标题】:How do I close a kivy application window with a button press?如何通过按下按钮关闭 kivy 应用程序窗口?
【发布时间】:2019-08-04 22:37:40
【问题描述】:

我正在使用 Pygame 在 Python 中制作一个蛇游戏,我想使用 Kivy 框架添加一个菜单屏幕。我在中心有一个“播放”按钮,当我点击它时,我想关闭 kivy 窗口而不是 Python 程序,因为我希望游戏在您点击按钮后运行。

我已经尝试过使用app.stop(),但这只会清除 kivy 窗口,并且窗口会坐在那里覆盖屏幕。

【问题讨论】:

  • 启动贪吃蛇游戏的命令是什么?
  • 我使用了main() 函数来启动游戏的可玩部分。之前我使用if __name__ == "__main__": 调用了 main() 函数
  • 请提供Minimal, Reproducible Example。谢谢。

标签: python-3.x kivy


【解决方案1】:

on_request_close 绑定到调用Window.close()(以及其他退出脚本)的函数。

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.gridlayout import GridLayout

class GameApp(App):
       
    def build(self):
        return MenuScreen()

class MenuScreen(GridLayout):

    def __init__(self, **kwargs):
        super(MenuScreen, self).__init__(**kwargs)   
        Window.bind(on_request_close=self.end_func)

    def end_func(self, *args):
        app.stop()
        Window.close()  

【讨论】:

  • 这为我关闭了应用程序,但由于某种原因我无法启动新应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-25
相关资源
最近更新 更多