Python 如何在kivy中保存更改以备下次使用

Python 如何在kivy中保存更改以备下次使用,python,kivy,Python,Kivy,我一直在试图保存在黑暗模式和光明模式kivy的变化,所以每当用户选择一个模式,并打开下一次的模式将是一个选择。我尝试使用open()方法,但失败了。有人知道如何保存这些更改吗 Python文件 kv文件- Screen\u管理器: 屏幕1: 屏幕2: 屏幕3: 屏幕4: : 名称:“s1” 浮动布局: 图片: id:i1 来源:'Images\\Dark\\t.jpg' 允许拉伸:真 标签: id:l1 文本:“abcd” 字号:150 颜色:1,1,1,1 pos_提示:{'y':0.3} 按

我一直在试图保存在黑暗模式和光明模式kivy的变化,所以每当用户选择一个模式,并打开下一次的模式将是一个选择。我尝试使用open()方法,但失败了。有人知道如何保存这些更改吗

Python文件 kv文件-
Screen\u管理器:
屏幕1:
屏幕2:
屏幕3:
屏幕4:
:
名称:“s1”
浮动布局:
图片:
id:i1
来源:'Images\\Dark\\t.jpg'
允许拉伸:真
标签:
id:l1
文本:“abcd”
字号:150
颜色:1,1,1,1
pos_提示:{'y':0.3}
按钮:
编号:b1
背景\u正常:“图像\\暗\\btn.jpg”
位置提示:{'y':0.3,'x':0.4}
文本:“设置”
字体大小:40
颜色:1,1,1,1
大小提示:0.2,0.1
在以下情况之前:
颜色:
rgba:0,0,1,1
行:
宽度:5
矩形:self.x、self.y、self.width、self.height
发布时:
app.root.current='s2'
root.manager.transition.direction='left'
按钮:
id:b2
背景\u正常:“图像\\暗\\btn.jpg”
位置提示:{'y':0.45,'x':0.4}
文本:“开始”
字体大小:40
颜色:1,1,1,1
大小提示:0.2,0.1
在以下情况之前:
颜色:
rgba:0,0,1,1
行:
宽度:5
矩形:self.x、self.y、self.width、self.height
按钮:
身份证号码:b3
背景\u正常:“图像\\暗\\btn.jpg”
位置提示:{'y':0.947,'x':0.898}
文本:“关闭”
字体大小:30
颜色:1,1,1,1
尺寸提示:0.1,0.05
在以下情况之前:
颜色:
rgba:1,0,0,1
行:
宽度:3
矩形:self.x、self.y、self.width、self.height
新闻界:
App=App.get_running_App()
App.stop()
:
名称:“s2”
浮动布局:
图片:
id:i1
来源:'Images\\dark\\bg.jpg'
允许拉伸:真
标签:
id:l1
文本:“设置”
字体大小:100
颜色:1,1,1,1
位置提示:{'y':0.4}
按钮:
编号:b1
文本:“返回”
背景\u正常:“图像\\暗\\btn.jpg”
尺寸提示:0.1,0.05
位置提示:{'y':0.947,'x':0.002}
颜色:1,1,1,1
字体大小:30
在以下情况之前:
颜色:
rgba:1,0,0,1
行:
宽度:3
矩形:self.x、self.y、self.width、self.height
发布时:
app.root.current='s1'
root.manager.transition.direction='right'
微调器:
id:s1
文本:“默认值”
背景\u正常:“图像\\暗\\btn.jpg”
尺寸提示:0.1,0.05
位置提示:{'y':0.67,'x':0.2}
颜色:1,1,1,1
字体大小:30
在以下情况之前:
颜色:
rgba:0,0,1,1
行:
宽度:3
矩形:self.x、self.y、self.width、self.height
值:“亮”、“暗”、“默认”
on_text:root.mode(s1.text)
标签:
id:l2
文本:“主题:”
字体大小:50
颜色:1,1,1,1
位置提示:{'y':0.2,'x':-0.42}
标签:
id:l3
正文:''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
字体大小:50
颜色:1,1,1,1
pos_提示:{'y':0.1}
按钮:
id:b2
背景\u正常:“图像\\暗\\btn.jpg”
位置提示:{'y':0.947,'x':0.898}
文本:“关闭”
字体大小:30
颜色:1,1,1,1
尺寸提示:0.1,0.05
在以下情况之前:
颜色:
rgba:1,0,0,1
行:
宽度:3
矩形:self.x、self.y、self.width、self.height
新闻界:
App=App.get_running_App()
App.stop()

那么,在这里我如何保存暗模式或亮模式,以便用户下次打开时保持原样。

为什么不能将暗模式和亮模式值写入这样的文本文件

将以下行添加到
模式
方法

file1 = open("log.txt","w")
L = [value] 
file1.writelines(L)
file1.close() 
上述代码将
value
作为
Dark
Light
写入名为“log.txt”的文本文件

因此,暗模式或亮模式将保存到文本文件中

在进入屏幕时,在输入:()方法时使用
,读取文本文件并获取保存的值

"""
code snippet
"""
class Screen2(Screen):

    def on_enter(self):
        file1 = open("log.txt","r+") 
        value = (file1.read())

        if value == 'Dark' or value == 'Default':
            

            # Screen 1
            self.manager.screens[0].ids.i1.source = 'Images\\dark\\t.jpg'
            self.manager.screens[0].ids.b1.background_normal = 'Images\\dark\\btn.jpg'
            self.manager.screens[0].ids.b2.background_normal = 'Images\\dark\\btn.jpg'
            self.manager.screens[0].ids.b3.background_normal = 'Images\\dark\\btn.jpg'
            self.manager.screens[0].ids.l1.color = 1, 1, 1, 1
            self.manager.screens[0].ids.b1.color = 1, 1, 1, 1
            self.manager.screens[0].ids.b2.color = 1, 1, 1, 1
            self.manager.screens[0].ids.b3.color = 1, 1, 1, 1
            # Screen 2
            self.ids.i1.source = 'Images\\dark\\bg.jpg'
            self.ids.b1.background_normal = 'Images\\dark\\btn.jpg'
            self.ids.b2.background_normal = 'Images\\dark\\btn.jpg'
            self.ids.s1.background_normal = 'Images\\dark\\btn.jpg'
            self.ids.l1.color = 1, 1, 1, 1
            self.ids.l2.color = 1, 1, 1, 1
            self.ids.l3.color = 1, 1, 1, 1
            self.ids.s1.color = 1, 1, 1, 1
            self.ids.b1.color = 1, 1, 1, 1
            self.ids.b2.color = 1, 1, 1, 1


        elif value == 'Light' :
            print('light')
            # Screen 1
            self.manager.screens[0].ids.i1.source = 'Images\\light\\t.jpg'
            self.manager.screens[0].ids.b1.background_normal = 'Images\\light\\btn.jpg'
            self.manager.screens[0].ids.b2.background_normal = 'Images\\light\\btn.jpg'
            self.manager.screens[0].ids.b3.background_normal = 'Images\\light\\btn.jpg'
            self.manager.screens[0].ids.l1.color = 0,0,0,1
            self.manager.screens[0].ids.b1.color = 0,0,0,1
            self.manager.screens[0].ids.b2.color = 0,0,0,1
            self.manager.screens[0].ids.b3.color = 0, 0, 0, 1

            # Screen 2
            self.ids.i1.source = 'Images\\light\\bg.jpg'
            self.ids.b1.background_normal = 'Images\\light\\btn.jpg'
            self.ids.b2.background_normal = 'Images\\light\\btn.jpg'
            self.ids.s1.background_normal = 'Images\\light\\btn.jpg'
            self.ids.l1.color = 0,0,0,1
            self.ids.l2.color = 0, 0, 0, 1
            self.ids.l3.color = 0, 0, 0, 1
            self.ids.s1.color = 0,0,0,1
            self.ids.b1.color = 0,0,0,1
            self.ids.b2.color = 0, 0, 0, 1

参考资料:

您能提供一些代码来解释您的问题吗?请显示失败的代码和错误回溯。先生,我实际上不知道如何保存更改,这就是为什么我无法将这些更改放在一起谢谢先生,我无法这样做,这正是您试图实现的目标,对吗?
file1 = open("log.txt","w")
L = [value] 
file1.writelines(L)
file1.close() 
"""
code snippet
"""
class Screen2(Screen):

    def on_enter(self):
        file1 = open("log.txt","r+") 
        value = (file1.read())

        if value == 'Dark' or value == 'Default':
            

            # Screen 1
            self.manager.screens[0].ids.i1.source = 'Images\\dark\\t.jpg'
            self.manager.screens[0].ids.b1.background_normal = 'Images\\dark\\btn.jpg'
            self.manager.screens[0].ids.b2.background_normal = 'Images\\dark\\btn.jpg'
            self.manager.screens[0].ids.b3.background_normal = 'Images\\dark\\btn.jpg'
            self.manager.screens[0].ids.l1.color = 1, 1, 1, 1
            self.manager.screens[0].ids.b1.color = 1, 1, 1, 1
            self.manager.screens[0].ids.b2.color = 1, 1, 1, 1
            self.manager.screens[0].ids.b3.color = 1, 1, 1, 1
            # Screen 2
            self.ids.i1.source = 'Images\\dark\\bg.jpg'
            self.ids.b1.background_normal = 'Images\\dark\\btn.jpg'
            self.ids.b2.background_normal = 'Images\\dark\\btn.jpg'
            self.ids.s1.background_normal = 'Images\\dark\\btn.jpg'
            self.ids.l1.color = 1, 1, 1, 1
            self.ids.l2.color = 1, 1, 1, 1
            self.ids.l3.color = 1, 1, 1, 1
            self.ids.s1.color = 1, 1, 1, 1
            self.ids.b1.color = 1, 1, 1, 1
            self.ids.b2.color = 1, 1, 1, 1


        elif value == 'Light' :
            print('light')
            # Screen 1
            self.manager.screens[0].ids.i1.source = 'Images\\light\\t.jpg'
            self.manager.screens[0].ids.b1.background_normal = 'Images\\light\\btn.jpg'
            self.manager.screens[0].ids.b2.background_normal = 'Images\\light\\btn.jpg'
            self.manager.screens[0].ids.b3.background_normal = 'Images\\light\\btn.jpg'
            self.manager.screens[0].ids.l1.color = 0,0,0,1
            self.manager.screens[0].ids.b1.color = 0,0,0,1
            self.manager.screens[0].ids.b2.color = 0,0,0,1
            self.manager.screens[0].ids.b3.color = 0, 0, 0, 1

            # Screen 2
            self.ids.i1.source = 'Images\\light\\bg.jpg'
            self.ids.b1.background_normal = 'Images\\light\\btn.jpg'
            self.ids.b2.background_normal = 'Images\\light\\btn.jpg'
            self.ids.s1.background_normal = 'Images\\light\\btn.jpg'
            self.ids.l1.color = 0,0,0,1
            self.ids.l2.color = 0, 0, 0, 1
            self.ids.l3.color = 0, 0, 0, 1
            self.ids.s1.color = 0,0,0,1
            self.ids.b1.color = 0,0,0,1
            self.ids.b2.color = 0, 0, 0, 1