如何在 KivyMD 中保存用户的输入(图像文件)

How to save user's input (mage file) in KivyMD

我制作了一个接受用户输入的简单应用程序(图像文件)。但是每当它关闭时,输入的文件就会丢失,(当然,我没有办法保存它)。 拜托,我希望输入的图像文件在下次打开应用程序时可用,所以请问我如何保存输入的图像文件(Perharbs 你可以给我看一个示例代码,指导我去某个地方或任何东西,我会非常感谢)。非常感谢您的帮助。

这是我的代码:

from kivy.lang import Builder
from kivymd.app import MDApp
from kivy.core.window import Window
from plyer import filechooser

Window.size = (300, 530)

KV = """
MDBoxLayout:
    orientation: 'vertical'

    MDToolbar:
        id: progress_toolbar
        title: 'Progress'

    ScrollView:
        MDGridLayout:
            cols: 2
            adaptive_height: True
            spacing: (10, 15)
            padding: [25, 25]

            MDLabel:
                halign: 'center'
                text: 'Before'

            MDLabel:
                halign: 'center'
                text: 'Now'

            MDCard:
                ripple_behavior: True
                orientation: 'vertical'
                size_hint_y: None
                size: 120, 220
                elevation: 15
                radius: 8
                MDIconButton:
                    icon: "camera-outline"
                    user_font_size: "24sp"
                    pos_hint: {"center_x": .5, "center_y": .5}
                    on_release: app.file_chooser1()
                Image:
                    id: img1
                    allow_stretch: True
                    keep_ratio: False
                    # size_hint_y: .5

            MDCard:
                ripple_behavior: True
                orientation: 'vertical'
                size_hint_y: None
                size: 120, 220
                elevation: 15
                radius: 8
                MDIconButton:
                    icon: "camera-outline"
                    user_font_size: "24sp"
                    pos_hint: {"center_x": .5, "center_y": .5}
                    on_release: app.file_chooser2()
                Image:
                    id: img2
                    allow_stretch: True
                    keep_ratio: False
                    # size_hint_y: .5


            MDTextField:
                hint_text: 'Date'
                width: 100

            MDTextField:
                hint_text: 'Date'
                width: 100

"""


class Example(MDApp):

    def build(self):
        return Builder.load_string(KV)

    def file_chooser1(self):
        filechooser.open_file(on_selection=self.selected1)

    def file_chooser2(self):
        filechooser.open_file(on_selection=self.selected2)

    def selected1(self, selection1):
        self.root.ids.img1.source = selection1[0]

    def selected2(self, selection2):
        self.root.ids.img2.source = selection2[0]


Example().run()

再次感谢您的帮助,我将不胜感激。

我认为你应该记录图像文件。

怎么办?

您可以将 kivy.storage.jsonstore.JsonStore class 用于 日志记录 ,就像 数据库

from kivy.storage.jsonstore import JsonStore

store = JsonStore('database.json')

...

def selected1(self, selection1):
    self.root.ids.img1.source = selection1[0]
    files_list = store['database']['files']
    files_list.append(selection1[0])
    store.put('database', files=files_list)

像这样。我希望我能帮助你。您可以搜索如何使用JsonStore Kivy ?