python - 从屏幕类调用 kv 中的父函数
问题描述
我有一个script1.py
带有函数function1
和屏幕类的方法Screen
,以及它附带的 kv 文件gui.kv
。我想function1
在课堂gui.kv
上打电话。Screen
唯一的问题是我不知道怎么做。root.
将调用 Screen 类,但我想从更广泛的范围调用,script1.py
因为这function1
是定义的地方。
我该怎么做?
编辑:
我将在一段更实用的代码中展示我的意思:
脚本1.py
from kivy.uix.screenmanager import Screen
def function1(digit):
return digit + 2
class Screen(Screen):
pass
gui.kv
<Screen>:
FloatLayout:
<I would like to call function1(digit) here>
我已经尝试过root.function1(digit)
,但这不起作用,因为root
是Screen
上课。我也尝试super().root.function(digit)
访问整个脚本,但也没有用。
解决方案
不幸的是,python/kivy 与上下文非常相关,这就是为什么我们要求一个最小的可重现示例。
鉴于您提供的内容,您可以像这样function1
从kv
文件中访问:
#:import Script1 Script1
<Screen>:
FloatLayout:
Label:
text: str(Script1.function1(3)
请参阅kivy.lang 文档。请注意,这使用加载文件function1()
时返回的值kv
,并且不设置任何绑定。这也假设所有文件都在同一个文件夹中。
推荐阅读
- python - conda报错:环境不一致,请仔细查看打包方案
- javascript - 如何将变量作为字符串传递以定位要由 d3 读取的文件
- c# - 如何在 C# 中将 Dicom 转换为 BMP 图像?
- groovy - 检索地图列表中的第一张地图groovy
- java - 更改我的正则表达式后在线程“main”java.lang.NullPointerException 中获取异常
- sql - SQL 返回逗号分隔列表 - 指定的修剪长度大于当前 LOB 值的长度
- graphql - 使用 Apollo Server 嵌套的每字段解析器
- javascript - 使用 ajax 在 div 中获取图像的问题:更新新问题
- java - Hibernate JPA columnDefinition 序列未生成
- json - Postgres - 将两个数组合并成一个 JSON