Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Kivy的AsyncImage中检测图片下载结束?_Python_Kivy - Fatal编程技术网

Python 如何在Kivy的AsyncImage中检测图片下载结束?

Python 如何在Kivy的AsyncImage中检测图片下载结束?,python,kivy,Python,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 = BoxLayou

我正在写一个简单的应用程序,像这样:

#!/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下载图片的行为


或者,我可以自己编写下载线程并使用图像小部件,但在这种情况下,我可以如何将原始字节从内存加载到图像小部件以将其显示为图片?

您可以使用
img.\u coreimage.bind(on\u load=self.on\u Image\u load)

#!/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()