【问题标题】:Kivy 1.10.1 dropdown with scrollview can't scroll on touch带有滚动视图的 Kivy 1.10.1 下拉菜单无法在触摸时滚动
【发布时间】:2019-03-11 18:42:38
【问题描述】:

该代码与 kivy 1.9.1 完美配合,但不适用于 kivy master 或 1.10.1

代码:

DropDown:
    auto_width: False
    id: colors
    size: (root.width, 100)
    ScrollView:
        bar_width: 5
        do_scroll_y: False
        do_scroll_x: True
        height: 100
        size_hint_y: None
        GridLayout:
            id: colors_scroll
            rows: 1
            spacing: 0
            width: self.minimum_width
            size_hint: None, None
            30Buttons:
                size_hint: None, None
                size: 100,100

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: python kivy scrollview dropdown buildozer


    【解决方案1】:

    DropDown 小部件当前已经继承了 ScrollView。

    尝试将以下内容添加到 ScrollView:

        effect_cls: "ScrollEffect"
        scroll_type: ['bars']
    

    示例

    main.py

    ​​>
    from kivy.uix.dropdown import DropDown
    from kivy.uix.button import Button
    from kivy.base import runTouchApp
    from kivy.lang import Builder
    
    Builder.load_string("""
    #:import Button kivy.uix.button.Button
    
    <CustomDropDown>:
        bar_width: 10
        effect_cls: "ScrollEffect"
        scroll_type: ['bars']
        bar_color: [1, 0, 0, 1]     # red color
        bar_inactive_color: [0, 0, 1, 1]    # blue color
    
        GridLayout:
            cols: 1
            size_hint_y: None
            height: self.minimum_size[1]
    
            on_parent:
                for i in range(1, 30): \
                    txt = "{0}".format(i); \
                    btn=Button(text=txt, size_hint_y=None, height=40); \
                    btn.bind(on_release=lambda btn: self.select(btn.text)); \
                    self.add_widget(btn)
    
    """)
    
    
    class CustomDropDown(DropDown):
        pass
    
    
    dropdown = CustomDropDown()
    mainbutton = Button(text='Hello', size_hint=(None, None))
    mainbutton.bind(on_release=dropdown.open)
    dropdown.bind(on_select=lambda instance, x: setattr(mainbutton, 'text', x))
    
    runTouchApp(mainbutton)
    

    输出

    【讨论】:

    • 不是我要找的,但这不仅仅是完美的,它给了我一些想法。谢谢!!!
    猜你喜欢
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2013-05-30
    • 2018-10-30
    相关资源
    最近更新 更多