我正在尝试更改将停止某些线程的变量值,我想要的是在关闭应用时更改该值,我的意思是当您单击X并关闭它时。
我正在尝试一些东西,但它不起作用:
def on_request_close(self):
close()
print("awdw")
self.textpopup(title='Exit', text='Are you sure?')
这是我在close()
上调用的on_request_close()
方法:
def close(self):
print("Cerrando")
print(str(self.exit))
self.exit = False
答案 0 :(得分:0)
您可能需要执行Window.bind(on_request_close=on_request_close)
之类的操作。
答案 1 :(得分:0)
return True
附加到on_request_close()
方法。Window.bind(on_request_close=self.on_request_close)
添加到build()
方法。详情请参阅示例。
on_request_close(*largs, **kwargs)
关闭窗口前调用的事件。如果绑定函数返回 没错,窗口不会关闭。
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.popup import Popup
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.properties import BooleanProperty
from kivy.core.window import Window
class MyApp(App):
exit = BooleanProperty(True)
def build(self):
Window.bind(on_request_close=self.on_request_close)
return Label(text="Hello world")
def on_request_close(self, *largs, **kwargs):
print('on_request_close:')
self.close()
print("awdw")
self.textpopup(title='Exit', text='Are you sure?')
return True
def close(self):
print("Cerrando")
print(str(self.exit))
self.exit = False
def textpopup(self, title='', text=''):
print('textpopup:')
box = BoxLayout(orientation='vertical')
box.add_widget(Label(text=text))
mybutton = Button(text='OK', size_hint=(1, 0.25))
box.add_widget(mybutton)
popup = Popup(title=title, content=box, size_hint=(None, None), size=(400, 400))
mybutton.bind(on_release=self.stop)
popup.open()
if __name__ == '__main__':
MyApp().run()