在更改时显示kivy滑块值[关闭]
Posted
技术标签:
【中文标题】在更改时显示kivy滑块值[关闭]【英文标题】:Display kivy slider value as it changes [closed] 【发布时间】:2014-05-14 06:33:48 【问题描述】:我想知道是否可以将 kivy 微调器值显示为移动标签,以便用户确切知道滑块的当前值是什么。
谢谢
【问题讨论】:
您可以将on_touch_move: myFunctionOnMove()
作为您的kv 文件中Slider
类的属性写入,然后将self.myFunctionOnMove()
添加到您的python 源代码中以执行您希望它执行的操作。
【参考方案1】:
您只需将侦听器绑定到值更改事件
some_label = Label(...)
my_slider = Slider(...)
def OnSliderValueChange(instance,value):
some_label.text = str(value)
my_slider.bind(value=OnSliderValueChange)
正如 .kv 文件中指出的那样,您可以执行类似的操作
<PongGame>:
...
canvas:
Rectangle:
...
Label:
...
text: str(slider_id.value)
Slider:
...
id: slider_id
【讨论】:
谢谢 Joran,这是一个业余爱好者的问题。您将如何从 kv 文件中执行此操作?对于 TextInput 我可以使用 'on_focus:root.setLabel(self.text)' 但我找不到对 Spinner 或 Slider 做同样事情的方法 使用on_value
我认为(我认为.bind(some_var=handler_fn)
在kv文件中大致等于on_some_var
on_value 为 Slider 完成了这项工作。 'on_text' 为 Spinner ==> 问题解决了!谢谢
在 kv 中,如果小部件在同一规则中,则不需要使用 on_value
事件。您可以只给滑块一个 id (id: slider_id
),然后在标签中写入 text: str(slider_id.value)
。 kv 语言会自动检测引用并为您创建绑定。
这个答案在这种特殊情况下帮助了我,但是我在文档中的哪里可以找到这个?查看API ref,我看不到可以处理哪些事件,以及哪些参数将被提供给事件处理程序。以上是关于在更改时显示kivy滑块值[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 LabVIEW 的每种情况下,如何在 while 循环中更改滑块值?