Python 设置kivy整数的最小值和最大值

Python 设置kivy整数的最小值和最大值,python,python-3.x,kivy,python-3.6,Python,Python 3.x,Kivy,Python 3.6,我有一个数字,我想从0到100,不多也不少。我尝试将数字设置为: ego = NumericProperty(0, min=0, max=100) 但是,当我按下此按钮时,数字仍然允许自己超过100: on_release: root.update_ego() Button: text: "increase ego" pos: 700,500 on_release: root.update_ego() 我的.py文件说: def update_ego(self):

我有一个数字,我想从0到100,不多也不少。我尝试将数字设置为:

ego = NumericProperty(0, min=0, max=100)
但是,当我按下此按钮时,数字仍然允许自己超过100:

on_release: root.update_ego()
Button:
    text: "increase ego"
    pos: 700,500
    on_release: root.update_ego()
我的.py文件说:

def update_ego(self):
    self.ego += 1

由于我不知道问题的原因(可能您必须在代码中的另一个位置设置数字),因此我建议以下解决方法:

def update_ego(self):
    if self.ego < 100:
        self.ego += 1
def更新(自我):
如果self.ego<100:
self.ego+=1

您应该执行以下操作:

from kivy.properties import BoundedNumericProperty
...
# returns the boundary value when exceeded
ego = BoundedNumericProperty(0, min=0, max=100,
    errorhandler=lambda x: 100 if x > 100 else 0)
示例-浮点小数 main.py 测试电压2.kv
#:kivy 1.10.0
:
方向:“垂直”
标签:
字体大小:70
中心x:root.width/4
顶部:root.top-50
文本:“{0:5.2f}”。格式(root.ego)
按钮:
正文:“增加自我”
发布时:root.update\u ego()
输出

作为一个更新,对于其他醉醺醺地在这里绊倒的人,您可以完全更新kivy按钮本身中的变量

Button:
    text: "increase ego"
    on_release: root.ego = root.ego + 1

这可以减少您拥有的函数数量,并避免不必要的逻辑障碍。

谢谢,工作非常完美。它也适用于小数吗?(例如,如何使变量的范围从0到20,并且只能有1位小数?)是的,它也适用于浮点小数。有关详细信息,请参考我的示例。
#:kivy 1.10.0

<RootWidget>:
    orientation: "vertical"
    Label:
        font_size: 70
        center_x: root.width / 4
        top: root.top - 50
        text: "{0:5.2f}".format(root.ego)
    Button:
        text: "increase ego"
        on_release: root.update_ego()
Button:
    text: "increase ego"
    on_release: root.ego = root.ego + 1