gpt4 book ai didi

python - Kivy - 使用从 Python 传递的值更新 Canvas 背景

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:09 24 4
gpt4 key购买 nike

努力从 python 更新 Canvas 的图像源:

这是 .KV 部分:

BoxLayout:
orientation: "vertical"
padding: "5dp"
size_hint_y: 0.70
canvas.before:
Color:
rgb: .6, .6, .6
Rectangle:
pos: self.pos
size: self.size
source: "image.png"

在Python方面,我有一个返回新图像名称的函数,我想将其传递给源以便将“image.png”更新为“image2.png”

我尝试在 .kv 中添加 ID,但不幸的是它不适用于“矩形”

有什么好主意吗?

最佳答案

变量可以从外部完全访问,例如内置名称(app 表示应用程序实例,root 表示主规则/类,self 表示当前小部件的实例)。 Id 将不起作用,因为 canvas(之前、经典、之后)是在之前构建其他任何内容的,因此您将无法访问 ids 在您为其构建 Canvas 的小部件的 Canvas 中。

Canvas 构建完成后,诸如 ids 之类的东西就会按照您期望的方式工作。

from kivy.app import App
from kivy.lang import Builder

kv = '''
BoxLayout:
variable: 'blob'
orientation: 'vertical'
canvas:
Color:
rgb: 1, 1, 1
Rectangle:
source: app.test # self.variable
'''


class TestApp(App):
def build(self):
self.test = 'path'
return Builder.load_string(kv)


if __name__ == '__main__':
TestApp().run()

关于python - Kivy - 使用从 Python 传递的值更新 Canvas 背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41466832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com