![](/img/trans.png)
[英]Checkboxes and radio buttons in different objects react in all objects at the same time (undesirably)
[英]Kivy grouped checkboxes (radio buttons) all clicking together, and from anywhere on the screen?
这是我认为非常简单的屏幕配置,我得到了三个单选按钮。 但是单击屏幕上的任何位置会导致选择第三个单选按钮 - 您不能 select 第一个或第二个单选按钮,为什么当用户单击屏幕上的任何位置而不是单选按钮时它会 select? 第二次单击任意位置取消选择第三项。
<FirstProfile>
id: firstprofile
disc_1: disc_1
disc_2: disc_2
disc_3: disc_3
canvas.before:
Color:
rgba: 1,1,1,1
Rectangle:
size: self.size
FloatLayout:
CheckBox:
id: disc_1
pos_hint: {'x':0.05,'center_y':0.7}
group: "disc"
active: False
Label:
text: "Disc 1"
pos_hint: {'x':0.25,'center_y':0.7}
text_size: 200,80
halign: 'left'
valign: 'middle'
CheckBox:
id: disc_2
pos_hint: {'x':0.05,'center_y':0.65}
group: "disc"
active: False
Label:
text: "Disc 2"
pos_hint: {'x':0.25,'center_y':0.65}
text_size: 200,80
halign: 'left'
valign: 'middle'
CheckBox:
id: disc_3
pos_hint: {'x':0.05,'center_y':0.6}
group: "disc"
active: False
Label:
text: "Disc 3"
pos_hint: {'x':0.25,'center_y':0.6}
text_size: 200,80
halign: 'left'
valign: 'middle'
问题是您没有为CheckBoxes
设置任何大小,因此每个CheckBox
都被分配了(1,1)
的默认size_hint
,这意味着每个 CheckBox 的大小与其父FloatLayout
相同。 当您单击该FloatLayout
上的任意位置时,添加的最后一个CheckBox
(“Disc 3”)会获取该事件并为自己声明它,而其他人永远不会看到该事件。
这是您的kv
的修改版本,它设置了一些大小:
<FirstProfile>
id: firstprofile
disc_1: disc_1
disc_2: disc_2
disc_3: disc_3
FloatLayout:
CheckBox:
id: disc_1
pos_hint: {'x':0.05,'center_y':0.7}
group: "disc"
active: False
size_hint: None, None
size: sp(32), sp(32)
Label:
text: "Disc 1"
pos_hint: {'x':0.25,'center_y':0.7}
text_size: 200,80
halign: 'left'
valign: 'middle'
size_hint: None, None
size: self.texture_size
CheckBox:
id: disc_2
pos_hint: {'x':0.05,'center_y':0.65}
group: "disc"
active: False
size_hint: None, None
size: sp(32), sp(32)
Label:
text: "Disc 2"
pos_hint: {'x':0.25,'center_y':0.65}
text_size: 200,80
halign: 'left'
valign: 'middle'
size_hint: None, None
size: self.texture_size
CheckBox:
id: disc_3
pos_hint: {'x':0.05,'center_y':0.6}
group: "disc"
active: False
size_hint: None, None
size: sp(32), sp(32)
Label:
text: "Disc 3"
pos_hint: {'x':0.25,'center_y':0.6}
text_size: 200,80
halign: 'left'
valign: 'middle'
size_hint: None, None
size: self.texture_size
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.