У меня есть простое приложение, которое запрашивает ваше имя и возраст в поле TextInput
. При нажатии кнопки сохранения открывается Popup
, и вы можете сохранить имя и возраст от TextInput
в файле.Kivy get TextInput from Popup
Вопрос: Как я могу получить доступ к названию и возрасту, когда Popup
уже открыт? Прямо сейчас я храню данные TextInput
в словаре, прежде чем открыть Popup
. Этого решение делает работу, но, безусловно, есть более элегантное решение, чем это:
class SaveDialog(Popup):
def redirect(self, path, filename):
RootWidget().saveJson(path, filename)
def cancel(self):
self.dismiss()
class RootWidget(Widget):
data = {}
def show_save(self):
self.data['name'] = self.ids.text_name.text
self.data['age'] = self.ids.text_age.text
SaveDialog().open()
def saveFile(self, path, filename):
with open(path + '/' + filename, 'w') as f:
json.dump(self.data, f)
SaveDialog().cancel()
Есть ли способ сделать это назад, получить данные из всплывающего окна и получить доступ к нему в главном приложении? – user2067030
@ user2067030 Да в главном классе виджетов 'self.save_popup' является всплывающим объектом. Таким образом, вы можете получить доступ к своим данным, вызвав его атрибуты 'self.save_popup.whatever_data_you_save_in_there' – EL3PHANTEN