def PopupOk(text, title='', btn_text='Continue', input=None, callback=None): btnclose = Button(text=btn_text, size_hint_y=None, height='50sp') content = BoxLayout(orientation='vertical') p = Popup(title=title, content=content, size=('300dp', '300dp'), size_hint=(None, None), pos_hint={'top':.95}) content.add_widget(Label(text=text)) if input is not None: assert callback is not None ti = TextInput(height='50sp', font_size='30sp', input_type=input, multiline=False, size_hint_y = None, focus=True) content.add_widget(ti) def _callback(*args): try: ti.hide_keyboard() except AttributeError: # On a real computer, not the phone pass if ti.text == '': callback(None) else: callback(ti.text) p.bind(on_dismiss=_callback) p.is_visable = True content.add_widget(btnclose) btnclose.bind(on_release=p.dismiss) p.open() if input is not None: while not p.is_visable: EventLoop.idle() return ti.text