【问题标题】:How can I reload a image in kivy python如何在 kivy python 中重新加载图像
【发布时间】:2017-07-08 18:12:09
【问题描述】:

这是我的脚本...

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()

我不会重新加载它,因为图像正在改变,而且我不会一直看到新的韩元

【问题讨论】:

    标签: python image kivy


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      制作您自己的小部件类,并将图像作为属性,以便您可以引用它。然后使用时钟调度间隔方法,不断地重新加载图像。
      在下面的示例中,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()
      

      【讨论】:

        【解决方案3】:

        您可以使用 Image.reload 方法

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

        【讨论】:

        • 穿我必须添加它吗?
        • 你可以像EL3PHANTEN写的例子那样在区间内调用它。我已经更新了我的答案以包含一个简短的示例
        猜你喜欢
        • 2019-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-01
        • 2011-07-06
        相关资源
        最近更新 更多