Python 我如何修改.kv文件以更新显示的图像/小部件,而不是将另一个图像/小部件添加到我的kivy应用程序中?

Python 我如何修改.kv文件以更新显示的图像/小部件,而不是将另一个图像/小部件添加到我的kivy应用程序中?,python,kivy,widget,kivy-language,Python,Kivy,Widget,Kivy Language,我目前的问题是,一旦我点击某个接收滑块输入的按钮,我想在我的kivy应用程序中添加一个图像(因此基本上,该按钮会为给定的滑块值添加一个不同的图像)。我现在遇到的问题是,我当前的解决方案使用add_widget命令,这显然会导致每次单击按钮时添加一个新的widget。我想要的是,更新现有的小部件,而不是添加新的小部件 试验电压(千伏): #: import Factory kivy.factory.Factory <TestImage1@Image>: source: 't

我目前的问题是,一旦我点击某个接收滑块输入的按钮,我想在我的kivy应用程序中添加一个图像(因此基本上,该按钮会为给定的滑块值添加一个不同的图像)。我现在遇到的问题是,我当前的解决方案使用add_widget命令,这显然会导致每次单击按钮时添加一个新的widget。我想要的是,更新现有的小部件,而不是添加新的小部件

试验电压(千伏):

#: import Factory kivy.factory.Factory


<TestImage1@Image>:
    source: 'test_1.jpg'
    #allow_stretch: True
    #keep_ratio: True
    pos_hint: {'centre_X':0.7}


<TestImage2@Image>:
    source: 'test_2.jpg'
    #allow_stretch: True
    #keep_ratio: True
    pos_hint: {'centre_X':0.7}


<TestBoxLayout>:
    orientation:'vertical'
    size: root.width,root.height
    font_size: 20
    padding: 100
    spacing: 10

    Slider:
        id: slider
        min: 1
        max: 2
        step: 1

    Button:
        text: 'press me'
        on_press: 
            if slider.value == 1: root.add_widget(Factory.TestImage1())
            elif slider.value == 2: root.add_widget(Factory.TestImage2())
        on_release: print("ahhh")
        on_state:
        #print("my current state is {}".format(self.state))
        size_hint: (0.3,0.3)
编辑:这是我上一个问题解决方案的扩展:

:
方向:'垂直'
尺寸:根。宽度,根。高度
字体大小:20
填充:100
间距:10
滑块:
id:滑块
min:1
最高:2
步骤:1
按钮:
文字:“按我”
按:img.source='test_1.jpg'如果slider.value==1,则按'test_2.jpg'
尺寸提示:(0.3,0.3)
图片:
id:img
颜色:(0,0,0,0)如果self.source不是其他(1,1,1,1)
位置提示:{'center_X':0.7}
import kivy
kivy.require('2.0.0')

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout


class TestBoxLayout(BoxLayout):
    pass


class TestApp(App):
    def build(self):
        return TestBoxLayout()


if __name__ == '__main__':
    TestApp().run()
<TestBoxLayout>:
    orientation:'vertical'
    size: root.width,root.height
    font_size: 20
    padding: 100
    spacing: 10

    Slider:
        id: slider
        min: 1
        max: 2
        step: 1

    Button:
        text: 'press me'
        on_press: img.source = 'test_1.jpg' if slider.value == 1 else 'test_2.jpg'
        size_hint: (0.3,0.3)

    Image:
        id: img
        color: (0, 0, 0, 0) if self.source is None else (1, 1, 1, 1)
        pos_hint: {'centre_X':0.7}