有人愿意解释为什么来自Kivy ToggleButton的群组名称必须是群组中某个按钮的ID之一吗?
我遇到了一个问题并且遇到了困难,最终发现唯一的解决方案是使用其中一个按钮的id名称,否则解释器会说组名未定义。我不明白为什么。我查看了Kivy Docs,我找不到任何有关团体的信息。它只说Toggle Buttons可以使用组来创建单选按钮样式活动。 我正在使用Kivy 1.10.0和Python 3.6.2
我在下面重新创建了这个问题。我对此非常感激。
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.togglebutton import ToggleButton
class toggling(BoxLayout):
pass
class togglingApp(App):
pass
if __name__ == "__main__":
togglingApp().run()
kv文件:
toggling:
<toggling>:
orientation: "vertical"
padding: 5
spacing: 5
BoxLayout:
size_hint_y: None
height: "40dp"
Label:
text: "Title"
BoxLayout:
size_hint_y: None
height: "40dp"
Label:
size_hint_x: None
width: "100dp"
text: "Firstly"
ToggleButton:
text:"A1"
group: a1
id: a1
on_press:
ToggleButton:
text:"A2"
group: a1
id: faulty
on_press:
BoxLayout:
size_hint_y: None
height: "40dp"
Label:
size_hint_x: None
width: "100dp"
text: "Secondly"
ToggleButton:
text:"B1"
id: b1
group: the_b_group
on_press:
ToggleButton:
text:"B2"
id: b2
group: the_b_group
on_press:
ToggleButton:
text:"B3"
id: b3
group: the_b_group
on_press:
BoxLayout:
背景(如果需要):
我的问题来自于错误,指出我的ToggleButton组名未定义。我有一些按预期工作的ToggleButtons,然后我尝试将一组类似的按钮复制并粘贴到一个新行,然后编辑标签。这个动作杀了应用程序。它不会运行,它说我的组名(对于新的按钮组)没有定义。
我正在尝试创建一个数据收集应用程序,它是一系列类别,每个系列都有2-5个切换按钮。我们的想法是点击每个组中的一个按钮,每个组中的数据填充一个列表视图,最终归档到数据库中。
不可否认,我的Python技能很弱,我只是在这几个月,但我的kivy技能较弱。 Kivy真的很棒,但无论出于何种原因,我发现Kivy完全不透明,我通常不会得到它正在做的事情。谢谢你的帮助。
答案 0 :(得分:2)
ToggleButton的group
名称不需要来自其中一个ToggleButton的id
。 group
名称是一个字符串。有关详细信息,请参阅以下示例。
切换按钮也可以分组以制作单选按钮 - 组中只有一个按钮可以处于“向下”状态。组名可以是字符串或任何其他可散列的Python对象:
Programming Guide » Kv language » id
警告
为id分配值时,请记住该值不是字符串。 没有引号:好 - &gt; id:value,bad - &gt; id:'value'
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class toggling(BoxLayout):
pass
class togglingApp(App):
def build(self):
return toggling()
if __name__ == "__main__":
togglingApp().run()
#:kivy 1.10.0
<toggling>:
orientation: "vertical"
padding: 5
spacing: 5
BoxLayout:
size_hint_y: None
height: "40dp"
Label:
text: "Title"
BoxLayout:
size_hint_y: None
height: "40dp"
Label:
size_hint_x: None
width: "100dp"
text: "Firstly"
ToggleButton:
text:"A1"
group: "a_group"
id: a1
on_press:
ToggleButton:
text:"A2"
group: "a_group"
id: faulty
on_press:
BoxLayout:
size_hint_y: None
height: "40dp"
Label:
size_hint_x: None
width: "100dp"
text: "Secondly"
ToggleButton:
text:"B1"
id: b1
group: "the_b_group"
on_press:
ToggleButton:
text:"B2"
id: b2
group: "the_b_group"
on_press:
ToggleButton:
text:"B3"
id: b3
group: "the_b_group"
on_press:
BoxLayout: