Kivy ActionDropDown无法打开

时间:2017-03-12 20:57:56

标签: kivy kivy-language

在下面的kivy gui中,当我按下'Pen'按钮时,ActionDropDown应该来了。我不认为它开放。但是“笔”按钮的行为就像是用它打开了DropDown一样(例如,你不能在第一次尝试时按下它)。有什么问题?

from kivy.uix.boxlayout import BoxLayout
from kivy.uix.actionbar import ActionDropDown
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen

Builder.load_string("""
<NoteScreen>:
    BoxLayout:
        orientation: 'vertical'

        NoteScreenMenu:

        Label:
            text: 'i am a label'

<NoteScreenMenu>:
    orientation: 'horizontal'
    size_hint_y: None
    height: 48

    ActionBar:
        pos_hint: dict(top=1)

        ActionView:
            use_separator: True

            ActionPrevious:
                title: 'Drawing Screen'
                with_previous: False

            ActionOverflow:

            ActionButton:
                id: pen_button
                text: 'Pen'
                on_release: root.pen_drop_down.open(self)

            ActionButton:
                text: 'Eraser'

<PenDropDown>:
    Button:
        text: 'Close this'
    Button:
        text: 'btn1'
""")


class NoteScreen(Screen):
    pass


class NoteScreenMenu(BoxLayout):
    def __init__(self, **kwargs):
        super(NoteScreenMenu, self).__init__(**kwargs)
        self.pen_drop_down = PenDropDown()


class PenDropDown(ActionDropDown):
    pass


class TheApp(App):
    def build(self):
        return NoteScreen(name='note')


if __name__ == '__main__':
    TheApp().run()

1 个答案:

答案 0 :(得分:0)

问题在于:

<PenDropDown>:
    Button:
        text: 'Close this'
    Button:
        text: 'btn1'

我需要在下拉列表中为按钮添加高度信息:

<PenDropDown>:
    Button:
        text: 'Close this'
        height: 48
        size_hint_y : None

    Button:
        text: 'btn1'
        height: 48
        size_hint_y : None