2017-02-19 4 views
1

это мой сценарий ...Как я могу перезагрузить изображение в 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() 

Я не буду перезагружать его becose изображение меняется, и я не буду, чтобы увидеть новый выиграл все время

ответ

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 
+0

износ я ВГА, чтобы добавить его ? –

+0

Вы можете назвать это интервалом, как на примере, который написал EL3PHANTEN. Я обновил свой ответ, чтобы включить короткий пример –

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

вы можете использовать перезарядку() для чтения изображения с диска снова это перезагрузит даже если исходные данные изображения обновляются или изменены

self.ids.image1.source = './Images/file.png' 
self.ids.image1.reload() 
Смежные вопросы