使用按钮退出 Kivy 应用程序 - NameError
Posted
技术标签:
【中文标题】使用按钮退出 Kivy 应用程序 - NameError【英文标题】:Exiting a Kivy application using a button - NameError 【发布时间】:2021-12-02 18:41:50 【问题描述】:我希望能够使用 Button
小部件退出我的 python kivy 应用程序。
我一直在查看How to exit a Kivy application using a button 中的答案,但一直收到错误消息。
我尝试将on_press
参数设置为ButtonApp.stop()
、ButtonApp().stop()
和ButtonApp.get_running_app().stop()
,但我不断收到NameError
错误消息。为什么?
我使用的是 python 3.9.1,jupyter notebook 6.0.1。
谢谢!
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
kv = '''
<NewButton>:
size_hint: None, None
size: 100, 100
Button:
text: "Exit"
font_size: 20
pos: 50, 50
size_hint: None, None
size: 50, 25
on_press: ButtonApp.stop()
'''
class NewButton(FloatLayout):
def callback1(self):
pass
class ButtonApp(App):
def build(self):
Builder.load_string(kv)
return NewButton()
if __name__ == '__main__':
ButtonApp().run()
# ERROR MESSAGE
NameError: name 'ButtonApp' is not defined
【问题讨论】:
将 on_press: ButtonApp.stop() 替换为 on_press: app.stop() @NorbertTiborcz,感谢您的评论。我尝试了 on_press: app.stop(),但它似乎导致 python 崩溃,并且 kivy 输出显示'Leaving application in progress'。 【参考方案1】:将on_press: ButtonApp.stop()
替换为on_press: app.stop()
或
#:import App kivy.app.App
on_press: App.get_running_app().stop()
结果会一样。
【讨论】:
以上是关于使用按钮退出 Kivy 应用程序 - NameError的主要内容,如果未能解决你的问题,请参考以下文章
在 ubuntu linux 中调试 kivy 应用程序时出现问题,当我尝试调试应用程序时,它开始导入要求,然后显示错误并退出