作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 MCQ 制作一个 aap。这里我想要一个功能,如果有人点击与复选框相对应的标签,则该复选框也必须被选中。在Kivy中可以吗?因为 Kivy 不直接提供任何与复选框的文本关联。
这是 kv 的一部分。
<MCQCheckBox@CheckBox>:
color:0,0,0,1
size_hint: 0.15, 1
group: 'opts'
<MCQLabel@Label>:
text_size: self.size
valign: 'center'
font_size: '13sp'
color: 0,0,0,1
<MCQsGUI>:
BoxLayout:
orientation:'vertical'
size_hint: 0.95, 0.7
spacing: 2
pos_hint: {'center_x': .5, 'center_y': .5}
MCQBoxLayout:
MCQCheckBox:
MCQLabel:
text:"option 1"
MCQBoxLayout:
MCQCheckBox:
MCQLabel:
text:"option 2"
MCQBoxLayout:
MCQCheckBox:
MCQLabel:
text:"option 3"
MCQBoxLayout:
MCQCheckBox:
MCQLabel:
text:"option 4"
最佳答案
您可以仅使用 kv languaje 和动态类来做到这一点:
要让标签表现得像按钮,您只需使 MCQLabel
继承于 Label
和 ButtonBehavior
类。
要保持组自己的行为,您可以调用 ToggleButton
的 _do_press ()
方法。按下关联标签时的类(CheckBox 继承自它)。
测试.kv:
<MCQCheckBox@CheckBox>:
color: 0, 0, 0, 1
size_hint: 0.15, 1
<MCQLabel@ButtonBehavior+Label>:
text_size: self.size
valign: 'center'
font_size: '13sp'
color: 0, 0, 0, 1
<MCQLabelCheckBox@BoxLayout>:
text: ''
group: ''
MCQCheckBox:
id: cb
group: root.group
MCQLabel:
on_press: cb._do_press()
text: root.text
<MCQsGUI>:
canvas.before:
Color:
rgba: 1, 1, 1, 1
Rectangle:
pos: self.pos
size: self.size
MCQLabelCheckBox:
text:"option 1"
group: 'opts'
MCQLabelCheckBox:
text:"option 2"
group: 'opts'
MCQLabelCheckBox:
text:"option 3"
group: 'opts'
MCQLabelCheckBox:
text:"option 4"
group: 'opts'
main.py:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class MCQsGUI(BoxLayout):
pass
class TestApp(App):
def build(self):
return MCQsGUI()
if __name__ == '__main__':
TestApp().run()
关于python - Kivy:触摸标签以选中复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48438074/
我是一名优秀的程序员,十分优秀!