【问题标题】:Creating DropDown in kivy with only kv file仅使用 kv 文件在 kivy 中创建 DropDown
【发布时间】:2015-06-15 14:34:50
【问题描述】:

我想使用 DropDown 类获得一个简单的组合框,例如小部件。我可以使用 python 代码来完成,但是否可以只使用 kv 语言?

我尝试了以下方法。这是我的python代码:

class CustomDropDown(DropDown):
   pass

class MainForm(BoxLayout):
    pass

class MainApp(App):
    def build(self):
        self.dropdown = CustomDropDown()
        self.mainForm = MainForm()
        return self.mainForm
    def do_something(self):
        self.dropdown.open(self.mainForm)

MainApp().run()

这是 kv 文件:

<MainForm>:
    Button:
        text: 'Press'
        size_hint: [None,None]
        height: '40dp'
        on_release: app.do_something()
<CustomDropDown>:
    Button:
        text: 'First Item'
    Label:
        text: 'Disabled item'
    Button:
        text: 'Second Item'

但这不起作用。你能建议点什么吗?任何帮助表示赞赏。

【问题讨论】:

    标签: android python kivy


    【解决方案1】:

    是的,可以使用 kivy 语言。

    您可以通过这些链接了解DropDownListSpinner。此外,如果您想了解更多关于他们的工作,您可能需要查看link for kivy-showcase

    我认为代码是不言自明的。(on_select 方法)

    这是 main.py 文件

    from kivy.app import App
    from kivy.uix.dropdown import DropDown
    from kivy.uix.boxlayout import BoxLayout
    
    class CustomDropDown(BoxLayout):
        pass
    
    class MainApp(App):
        def build(self):
            return CustomDropDown()
    if __name__=='__main__':
        MainApp().run()
    

    这是main.kv文件

    <CustomDropDown>:
    
        Button:
            id: btn
            text: 'Press'
            on_release: dropdown.open(self)
            size_hint_y: None
            height: '48dp'
    
        DropDown:
    
            id: dropdown
            on_parent: self.dismiss()
            on_select: btn.text = '{}'.format(args[1])
    
            Button:
                text: 'First Item'
                size_hint_y: None
                height: '48dp'
                on_release: dropdown.select('First Item')
    
            Label:
                text: 'Second Item'
                size_hint_y: None
                height: '48dp'
    
            Button:
                text: 'Third Item'
                size_hint_y: None
                height: '48dp'
                on_release: dropdown.select('Third Item')
    

    【讨论】:

    猜你喜欢
    • 2019-12-29
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    相关资源
    最近更新 更多