如何通过kivy

时间:2018-05-28 14:01:11

标签: python kivy

请原谅我,我是python和kivy的新人。对不起,我的英语不好。

我试图用kivy拍摄照片。 我的问题是每次照片的路径都不同,我不能像我的屏幕背景那样写source : 'path'。 `

如何将文件名中包含的路径传递给我的kv文件?我在python / kivy之间完全迷失了,它可能很简单,但我找不到解决方案。

我的python文件的一部分:

class CountdownScreen(Screen):
    def capture(self, nbr_rep):
        for i in range(nbr_rep):
            sleep(4)
            self.dslr = Gphoto()
            self.filename = self.dslr.capture_image()

class DisplayPicture(Screen):
    pass

class PhotoboothApp(App):
    countdown = CountdownScreen()
    def build(self):
        return RootScreen()

if __name__ == '__main__':
    PhotoboothApp().run()

我的kv档案的一部分:

<ChooseScreen>:
    name: "choose"
    FloatLayout:
        Image: #Background
            source: "Interface_PNG/Page_3.png"
            allow_stretch: True
            keep_ratio: False
            size_hint: 1, 1
        Button: #1
            id: b1
            background_color: 0, 0, 0, 0
            size_hint : 0.3, 0.5
            pos_hint: {'x' : 0.025, 'center_y' : 0.5}
            on_release: root.manager.current = "countdown"
            on_release: app.countdown.capture(1)

<DisplayPicture>:
    name: "display_picture"
    FloatLayout:
        Image: #Background
            source: 'Interface_PNG/Page_6.png'
            allow_stretch: True
            keep_ratio: False
            size_hint: 1, 1
        Image: #Picture
            source: ???
            keep_ratio: False
            allow_stretch: True
            size_hint: 0.67, 0.72
            pos_hint: {'center_x' : 0.565, 'center_y' : 0.50}

1 个答案:

答案 0 :(得分:0)

来自kivy的Image文档:

  

重载()

     

从磁盘重新加载图像。这有利于   如果图像内容发生变化,请从磁盘重新加载图像。

     

用法:

im = Image(source = '1.jpg')
# -- do something --
im.reload()
# image will be re-loaded from disk

如果您愿意,也可以在重新加载之前更改源路径。

im.source = "new_source.png"

请记住,这些更改必须以编程方式完成,因此您必须在代码中以某种方式触发它们,例如通过按下按钮。