python-3.x - 更新画布中矩形的来源以更改背景图像
问题描述
KV文件的基本片段:
<FirstScreen>:
background_image_rect: background_image_rect
id: First_screen
name: "First"
canvas:
Rectangle:
id: background_image_rect
pos: 0,0
size: self.size
source: "1.jpg"
FloatLayout:
....
我在浮动布局中定义了一个按钮,我希望在按下时更改屏幕的背景图像。
我已经尝试了我对 Kivy 的有限知识所允许的,但我似乎没有让它发挥作用。
当我尝试将 Id 与矩形一起使用时,它不会给出错误运行但我将无法使用root.ids.background_image_rect.souce
inon_press
函数查找 id。在画布中有矩形的 id 是否合法?
如何实现按下按钮时更新屏幕背景图像的目标?
解决方案
id 系统处于小部件级别,它不适用于图形指令。
最简单的解决方案是将源绑定到属性并更新该属性:
<FirstScreen>:
background_image_rect: background_image_rect
id: First_screen
name: "First"
canvas:
Rectangle:
id: background_image_rect
pos: 0,0
size: self.size
source: root.the_rect_source
在 Python 中:
class FirstScreen:
the_rect_source = StringProperty("...")
推荐阅读
- reactjs - 删除操作服务器端成功后自动刷新 React Table
- ruby-on-rails - rspec 规范仅在整个测试套件中运行时失败 - 单独运行时通过
- swift - Xcode AR Reference Image 太相似了
- benchmarking - 在 gem5 中运行的 Asimbench 基准测试失败并显示“致命:无法在 system.iobus 上找到 [0x40008000:0x40008040] 的目的地”
- javascript - Moment.js 麻烦将 unix 转换为本地时间到 utc
- reactjs - GraphQL Playground 返回数据,而 app 返回 null
- javascript - Ruby on Rails 6 自定义 JavaScript 文件 Uncaught ReferenceError: Rellax is not defined
- react-native - 我正在尝试使用 react-native 运行 AVD,但出现未知变量错误
- python - 如何在python中使用正则表达式提取这句话?
- javascript - 为什么反应不更新“那么”承诺中的状态?