【问题标题】:How to exit a Kivy application using a button如何使用按钮退出 Kivy 应用程序
【发布时间】:2015-12-02 06:02:26
【问题描述】:

我只是在学习 Python 和 Kivy 框架。我似乎找不到任何能够使用链接到按钮的代码优雅地退出 Kivy 应用程序的具体完整示例。

我找到了这样的 Kivy 代码 sn-ps

Button:
    id:btnExit
    text:"Exit"
    on_press: app.Exit()

但没有实现app.Exit() 调用的任何匹配代码。我尝试过的所有操作都会停止代码执行,但不会清理程序窗口。

我读过 Android 和 iOS 风格指南指出程序不能以编程方式退出并让操作系统处理它,但我正在开发全屏无边框桌面应用程序,需要一种通过按下按钮退出程序的方法。

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    使用App.stop(*largs):

    Button:
        id: btnExit
        text: "Exit"
        on_press: app.stop() 
    

    【讨论】:

      【解决方案2】:

      尝试使用App.get_running_app().stop()
      有关详细信息,请阅读Kivy documentation article 了解该功能。

      【讨论】:

      • 这是我尝试过的方法之一,但它不会清理窗口。代码停止执行,但窗口没有被破坏。
      • 谢谢,您的解决方案在从 python shell 执行时有效。我在 IDE 中遇到了同样的问题,不允许关闭窗口。
      • 要在kv语言文件中使用上述代码,您必须像这样导入App:#:import App kivy.app.App
      【解决方案3】:

      尝试使用self.root_window.close()。 新的android工具链有bug。

      【讨论】:

      • 我更喜欢quit() ,因为无论框架如何,它都会结束所有pythonic代码。在 kivy 中,它将是 on_press: quit()
      • 在 kivy 应用程序中退出() on_press:崩溃应用程序(*在新的 android 工具链中)
      【解决方案4】:

      我用过

      on_press : app.stop()
      

      在 Kivy 布局文件中的 Button 属性中,它对我来说效果很好。

      【讨论】:

        猜你喜欢
        • 2021-12-02
        • 2015-02-19
        • 2023-03-08
        • 2014-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多