有没有内置的方法可以获取ToggleButton组的当前选择?

21
我只是在浏览源代码寻找方法来做这件事,但没有找到。不过我想确认一下,因为可能有我错过的东西。是否有内置的方法来做到这一点,比如一个函数?当我有一些ToggleButton在一起分组时,我想能够获取当前选定(state == 'down')按钮的值(文本值,我猜),你知道吗?我知道我可以轻松自己实现这个方法,但感觉奇怪它还不存在。

经过文档和源代码的检查,目前我发现以下方法最简单:

from kivy.uix.togglebutton import ToggleButton as TB

current = [t for t in TB.get_widgets('group') if t.state=='down'][0]
value = current.text

虽然这并不是很长或难以做到的事情,但能够像下面这样做会很好:

警告:虚构代码

value = TB.get_widgets('group').selected

4
因为"虚构代码警告"让我大笑,所以我点了个赞。这个问题本身也很不错。 - D A Vincent
1
请记住,如果设置了 allow_no_selection,则可能会出现一个没有按钮处于按下状态的组。 - zeeMonkeez
@zeeMonkeez 非常正确。我猜你或许可以把代码放到一个 try/except 块里面去。 - Totem
1个回答

4
不,使用内置功能是不可能实现的。但是这里是我会做的方法:
tb = next( (t for t in TB.get_widgets('group') if t.state=='down'), None)
test = tb.text if tb else None

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接