1
我有一個簡單的應用程序,要求您在TextInput
字段中輸入姓名和年齡。 當您單擊保存按鈕時,將打開一個Popup
,您可以將名稱和年齡從TextInput
保存到文件中。Kivy從Popup獲取TextInput
問題: 如何在Popup
已打開時訪問名稱和年齡? 現在,我在打開Popup
之前將TextInput
數據存儲在字典中。 此解決方案的工作,但也肯定是一個更優雅的解決方案莫過於:
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