У меня есть всплывающее окно с Kivy, которое содержит 2 кнопки. Пользователь может отклонить всплывающее окно, нажав за пределами области всплывающих окон (auto_dismiss = True) или нажав кнопку «Нет». Выбрав кнопку «Да», выйдет из всего приложения.Как отклонить всплывающее окно Kivy через кнопку?
Пожалуйста, смотрите соответствующий код:
class ExitApp(App):
def exit_confirmation(self):
# popup can only have one Widget. This can be fixed by adding a BoxLayout
self.box_popup = BoxLayout(orientation = 'horizontal')
self.box_popup.add_widget(Label(text = "Really exit?"))
self.box_popup.add_widget(Button(
text = "Yes",
on_press = ExitApp.exit,
size_hint = (0.215, 0.075)))
self.box_popup.add_widget(Button(
text = "No",
on_press = self.popup_exit.dismiss,
size_hint=(0.215, 0.075)))
self.popup_exit = Popup(title = "Exit",
content = self.box_popup,
size_hint = (0.4, 0.4),
auto_dismiss = True)
self.popup_exit.open()
def exit(self):
App.get_running_app().stop()
Проблема теперь лежит с нажатием на кнопку «Нет». При нажатии этой клавиши код завершается с этой ошибкой:
on_press = self.popup_exit.dismiss,
AttributeError: 'Button' object has no attribute 'popup_exit'
Любая идея, как я могу исправить это как можно проще?
Функция лямбда не помогла здесь ... Пожалуйста, см. Мой ответ без функции лямбда. Любая идея, как лямбда может быть использована тогда в этом примере? –
@ElFred Положите строку из моего ответа вместо строки, которая терпит неудачу в вашей ... если она не работает, опубликуйте новую ошибку ... –
Ваше предложение не с этой ошибкой: «TypeError:() не принимает аргументы (1 данный) " –