繁体   English   中英

Kivy 分组复选框(单选按钮)全部点击在一起,并从屏幕上的任何位置?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM