如何在kivy python中重新加载图像

时间:2017-02-19 13:55:38

标签: python image kivy

这是我的剧本......

import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.image import Image

class MyApp(App):
  def build(self):
    return Image(source='go.jpg')

MyApp().run()

由于图像正在发生变化,我不会重新加载它,我不会一直看到新的赢家

3 个答案:

答案 0 :(得分:0)

您可以使用 Image.reload 方法

def build(self):
    img = Image(source='go.jpg')
    Clock.schedule_interval(lambda dt: img.reload(), 0.2) #5 per second
    return img

答案 1 :(得分:0)

创建自己的窗口小部件类,并将图像作为属性,以便您可以引用它。然后使用时钟来安排间隔方法,以不断重新加载图像 在下面的示例中,update_pic方法每秒执行一次。

import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.image import Image
from kivy.clock import Clock
from kivy.uix.widget import Widget


class MyImageWidget(Widget):

    def __init__(self,**kwargs):
        super(MyImageWidget,self).__init__(**kwargs)
        self.image = Image(source='go.jpg')
        self.add_widget(self.image)
        Clock.schedule_interval(self.update_pic,1)

    def update_pic(self,dt):
        self.image.reload()


class MyApp(App):
    def build(self):
        return MyImageWidget()


MyApp().run()

答案 2 :(得分:0)

你可以使用reload()再次从磁盘读取图像 即使图像的原始数据被更新或更改,这也会重新加载

self.ids.image1.source = './Images/file.png'
self.ids.image1.reload()