在ActionLabel旁边放置一个Kivy ActionCheck

时间:2017-05-31 14:10:03

标签: kivy kivy-language

我遇到的问题是在我的ActionGroup中包含一个Checkbox,旁边有一个Label。

在传统的情况下,我使用Layout类来对齐窗口小部件旁边的复选框。但是在ActionView或ActionGroup中,只允许ActionItems作为子项。

到目前为止,我尝试将CheckBox放入ActionLabel,这导致错误且透明的背景ActionItem(Checkbox above the ActionLabel):

ActionGroup:
id: view_menu_group
text: "[color=ff9900]View[/color]"
markup: True
mode: "spinner"

ActionLabel:
    text: "Compare Mode"
    ActionCheck:
        on_active: app.root.main_view.graph.multi_plot = self.active

我的目标应与此类似:Menu Dropdown with Checkboxes

1 个答案:

答案 0 :(得分:0)

好的,这就是我们的工作:我们实际上可以在ActionGroup中放置任何类型的小部件或布局。出于某种原因,kivy决定只有从ActionItem继承才能做到这一点。但是,基本上,代码是相同的:

from kivy.base import runTouchApp
from kivy.lang import Builder

runTouchApp(Builder.load_string('''
<MyCheckbox@BoxLayout+ActionItem>: # Inheritance in .kv
    ActionLabel:
        text: "Hello"
    ActionCheck:

ActionBar:
    size_hint: 1, 0.1 # REMOVE ME
    pos_hint: {'top':1} # REMOVE ME

    id: view_menu_group
    text: "[color=ff9900]View[/color]"
    markup: True
    mode: "spinner"

    ActionView:
        ActionPrevious:  # need this for some unknown reason
        ActionGroup:
            MyCheckbox:  # our custom Label+Checkbox ActionItem
'''))

以下是它的外观:

Label next to checkbox in an ActionBar ActionGroup