簡體   English   中英

如何在Kivy中的AsyncImage中檢測圖片下載結束?

[英]How to detect end of picture download in AsyncImage in Kivy?

我正在寫一個像這樣的簡單應用:

#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-

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


class Application(App):

    def build(self):
        box_layout = BoxLayout(orientation='vertical')
        img = AsyncImage(
            source='http://pl.python.org/forum/Smileys/default/cheesy.gif')

        box_layout.add_widget(img)
        return box_layout

    def __on_image_loaded(self):
        print('Very importatn stuff executed afer image has been downloaded by img widget.')

app = Application()
app.run()

如何檢測到AsyncImage小部件已從給定的URL下載圖片結束?

另外,我可以自己編寫下載線程並使用Image小部件,但是在這種情況下,我該怎么做才能將內存中的原始字節加載到Image小部件中以將它們顯示為圖片?

您可以使用img._coreimage.bind(on_load=self.on_image_loaded)

#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-

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


class Application(App):

    def build(self):
        box_layout = BoxLayout(orientation='vertical')
        img = AsyncImage(source='http://pl.python.org/forum/Smileys/default/cheesy.gif')
        img._coreimage.bind(on_load=self.on_image_loaded)

        box_layout.add_widget(img)
        return box_layout

    def on_image_loaded(self, *args):
        print('Very importatn stuff executed afer image has been downloaded by img widget.')

app = Application()
app.run()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM