Я разрабатываю небольшую фитнес-программу и хочу добавить функциональность, при которой программа создаст всплывающее окно, спрашивающее пользователя, действительно ли он хочет выйти из системы после того, как он нажал кнопку выхода в главном меню.экран.Я попытался сделать это, установив функцию button 'on_press' для создания всплывающего виджета с кнопкой в качестве содержимого (в качестве подтверждения концепции).
Однако я обнаружил, что, как только я добавил строку: "check = Popup (....)" программа начала выдавать "Clock [Critical] Слишком много итераций сделано до следующего кадра ...".
Я попытался создать свой собственный подкласс, чтобы попробоватьобойти это, но даже это не сработало.Я даже поместил всплывающий код в другой файл и попытался импортировать его, но это также не сработало (полностью).
Я прилагаю соответствующий код ниже, я написал всю программу на Pythonтолько и если бы кто-нибудь мог мне помочь, это было бы очень признательно.
(кстати, RedirectButton - это просто класс, который берет кнопку и дает ему возможность переключать текущий экран)
class MenuPopup(Popup):
def __init__(self,**kwargs):
super(MenuPopup, self).__init__(**kwargs)
self.size_hint = (0.5,0.5)
self.title = 'Are you sure you want to sign out?'
butt2=Button(text= 'No',on_press = self.dismiss)
class MenuScreen(Screen):
def signout(self,instance):
check = MenuPopup()
check.open()
def __init__(self, **kwargs):
super(MenuScreen, self).__init__(**kwargs)
layout = FloatLayout()
sign= RedirectButton(text= 'Sign Out',target='login', direction = 'down'
sign.size_hint = (0.4,0.3)
sign.pos_hint={"center_x":0.73,"center_y":0.3}
sign.bind(on_release= self.signout)
layout.add_widget(sign)
self.add_widget(layout)
class MyApp(App):
title = "Fitness Program"
Window.clearcolor = get_color_from_hex('FFFFFF')
def build(self):
sm = ScreenManager(transition=SlideTransition())
sm.add_widget(LoginScreen(name='login'))
sm.add_widget(MenuScreen(name='menu'))
return sm
if __name__ == "__main__":
MyApp().run()