【发布时间】:2021-05-03 22:52:48
【问题描述】:
我怎样才能从我在退出应用程序之前输入的列表中保存项目,然后在我打开应用程序时再次加载它,因为我要将它转换为应用程序然后我意识到因为我正在制作购物清单应用程序,即使我关闭应用程序,该项目也必须保存在列表中。
from kivy.lang import Builder
from kivy.core.window import Window
from kivymd.app import MDApp
from kivy.uix.screenmanager import Screen, ScreenManager
from kivymd.uix.list import OneLineAvatarIconListItem, IRightBodyTouch
from kivymd.uix.dialog import MDDialog
from kivymd.uix.button import MDFlatButton
from kivymd.uix.selectioncontrol import MDCheckbox
from kivymd.uix.boxlayout import MDBoxLayout
from kivy.properties import StringProperty
Window.size = (300, 500)
list_items = []
class DemoApp(MDApp):
def build(self):
return Builder.load_file('main.kv')
def add_item(self):
text_to_add = self.root.ids.ms.ids.inp.text
if self.root.ids.ms.ids.inp.text == "":
close_button = MDFlatButton(text="Okay", on_release=self.close_dialog)
self.dialog = MDDialog(title="Invalid", text="No item added",
size_hint=(0.7, 1), buttons=[close_button])
self.dialog.open()
else:
list_items.append(text_to_add)
self.root.ids.ms.ids.inp.text = ''
lst = OneLineAvatarIconListItem(text=text_to_add)
self.root.ids.ms.ids.list.add_widget(lst)
def close_dialog(self, obj):
self.dialog.dismiss()
def qna(self):
yes_button = MDFlatButton(text="Yes", on_release=self.remove_all_item)
no_button = MDFlatButton(text="No", on_release=self.close_dialog)
self.dialog = MDDialog(title="Remove all item?",
size_hint=(0.7, 1), buttons=[yes_button, no_button])
self.dialog.open()
def remove_all_item(self, obj):
self.root.ids.ms.ids.list.clear_widgets()
list_items.clear()
self.dialog.dismiss()
def remove_one_item(self, item):
for i in self.root.ids.ms.ids.list.children:
if i.text == item:
self.root.ids.ms.ids.list.remove_widget(i)
list_items.remove(i.text)
def on_start(self):
pass
【问题讨论】:
标签: python pycharm kivy kivy-language kivymd