首页 > 解决方案 > kivy中的动态转换图像

问题描述

每次单击按钮时,我都想更改 kv 文件中的图像。问题是我有一个图像,每次单击按钮时都会改变,但图像保持不变

class RandomWindow(Screen,Widget):
    img_src = StringProperty('Alcohol-Abuse.jpg')

    def randomDrink(self):
        ...

        r = requests.get(photo,stream=True, headers={'User-agent': 'Mozilla/5.0'})

        img_src = StringProperty('img.jpg')

        if r.status_code == 200:
            with open("img.jpg", 'wb') as f:
                r.raw.decode_content = True
                shutil.copyfileobj(r.raw, f)

------ kv.file---

Label:
    pos_hint:{"x":0.05, "y":0.35}
    size_hint: 0.45,0.5
    canvas:
        Rectangle:
            pos: self.pos
            size: self.size
            source: root.img_src

标签: pythonkivy

解决方案


这有效:

class RandomWindow(Screen,Widget):

def randomDrink(self):
....
    r = requests.get(photo,stream=True, headers={'User-agent': 'Mozilla/5.0'})

    if r.status_code == 200:
        with open("img.jpg", 'wb') as f:
            r.raw.decode_content = True
            shutil.copyfileobj(r.raw, f)

    self.ids.im.reload()

---kv.file----

Image:
    id: im
    source:'img.jpg'

推荐阅读