Kivy有没有办法将Python函数绑定到用kv语言创建的小部件?

2024-10-03 02:39:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个简单的口袋妖怪战斗模拟器。一个训练师有6个神奇宝贝,存储在一个列表中。我在.kv文件中有显示所需信息的标签。
我的问题是,如果将标签的text属性设置为Python变量:

text: '{}/{}'.format(root.pokemon.stats['cHealth'], root.pokemon.stats['Health'])

然后标签会不断更新,但设置为Python函数时:

text: root.pokemon.getHP()

使用getHP()函数,例如:

def getHP(self):
    return '{}/{}'.format(self.stats['cHealth'], self.stats['Health'])

当健康状况发生变化时,它们不会更新,但只有当保存神奇宝贝的列表发生变化时才会更新。(例如,Pokémon的顺序发生了变化)在调用函数时,是否有任何方法使绑定工作,或者所有函数调用都必须被其返回值替换?你知道吗


Tags: 函数textselfformat列表statsroot标签
1条回答
网友
1楼 · 发布于 2024-10-03 02:39:18

kv lang将自动绑定其中声明的属性,因此您可以将stats发送到您的函数并进行绑定:)

text: root.pokemon.getHP(root.pokemon.stats)

每次更改stats时,都会调用函数。你知道吗

相关问题 更多 >