2つのボタンを含むKivyでポップアップを作成しました。ユーザーは、ポップアップ領域の外側(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件) " –