Недавно я изменил свой код, потому что мой GUI стал слишком сложным, и я хотел закодировать мои всплывающие окна в python, в то время как другие мои элементы GUI создаются в отдельном файле kivy. Из kivy я вызываю всплывающее окно с кнопки и события on_release:
Button:
on_release:
root.confirmPopup()
В python у меня есть следующее определение (не обращайте внимания на отступ):
def confirmPopup(self): #call from kivy-file with root.confirmPopup()
#create popup
self.confPop = Popup()
self.confPop.title = 'Confirm Action'
self.confPop.auto_dismiss = False
self.confPop.size_hint = (None, None)
self.confPop.size = (400, 300)
#create popup-content
# def confAct():
# lambda *args: self.confPop.dismiss()
# print('test')
confBox = BoxLayout()
confBox.orientation = 'vertical'
confBox.add_widget(Label(text='Please confirm your action!',
pos_hint = {'center_x': .5, 'center_y': .5},
halign='center'))
confBox.add_widget(Button(text='Accept'))
confBox.add_widget(Button(text='Cancel',
on_release=lambda *args: self.confPop.dismiss()))
#on_release=confAct()))
#add content, open popup
self.confPop.content = confBox
self.confPop.open()
Как вы Можно видеть, что я пытался создать внутреннюю функцию, которую я прокомментировал, поскольку она не работала должным образом. Мой вопрос: как мне добавить несколько действий к on_release? Я мог бы добавить одно действие к on_press и одно к on_release, но это не то, что я хочу. Я пытался привязать несколько событий on_release к кнопке, разделяя команды с помощью; и так далее, но ничего не получалось. В kivy я мог бы просто добавить новую строку с отступом для каждой команды после on_release.