《Python+Kivy(App开发)从入门到实践》自学笔记:高级UX部件——DropDown下拉列表

章节知识点总览

5.2 DropDown下拉列表

        在Kivy中可以使用小部件和下拉列表实现下拉框功能,下拉框定位是自动的(如果小部件上方有空就会出现在上方,下方有空就会出现在下方),而且可以包含任何小部件,如简单的按钮、图片等等。

5.2.1 使用方法

        实例:DropDown下拉列表的使用方法

        新建一个dropdown.py文件,引入base包下的runTouchApp类,之后添加一个按钮来触发下拉框,具体代码如下:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.dropdown import DropDown
from kivy.uix.button import Button
from kivy.base import runTouchApp


class CustomDropDown(DropDown):
    #在.kv文件中添加下拉选项
    pass

class DropDownBox(BoxLayout):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)

        dropdown = CustomDropDown()
        #单击该按钮触发下拉框
        main_button = Button(text='SelectItem',size_hint=(0.2,0.15),\
                             pos_hint={'center_x':0.5,'center_y':0.5})
        main_button.bind(on_release=dropdown.open)
        #绑定选中后回调的方法,把main_button的text属性设置为传递过来的x
        dropdown.bind(on_select=lambda instance,\
                      x:setattr(main_button,'text',x))

        #self.add_widget(main_button)
        #创建一个MTWindow并将窗口小部件作为根窗口的小部件添加到窗口中
        runTouchApp(main_button)

class DropDownApp(App):
    def build(self):
        return DropDownBox()

if __name__ == '__main__':
    from kivy.core.window import Window
    Window.clearcolor = [.8,.8,.8,1]
    DropDownApp().run()

        在dropdown.py文件中添加一个CustomDropDown()类并继承DropDown,然后新建dropdown.kv文件,在其中添加下拉列表的内容,具体代码如下:

<CustomDropDown>:
	Button:
		text:'Item0'
		size_hint_y:None
		height:44
		on_release:root.select('item0')
	Button:
		text:'Item1'
		size_hint_y:None
		height:44
		on_release:root.select('item1')
	Button:
		text:'Item2'
		size_hint_y:None
		height:44
		on_release:root.select('item2')
	

        运行dropdown.py文件,点击中间按钮,出现下拉菜单,选中其中选项,中间按钮即变成该下拉选项内容,效果如下图:

2024e718ac3d493b969eb5e6e01e00c6.png

 5.2.2 常用属性

DropDown常用属性

属性说明
auto_dismiss在展开状态下单机下拉框时,是否自动关闭下拉框,默认为True
auto_width下拉选项的宽度是否设置为与下拉框一致,默认为True
dismiss_on_select选择完成后,是否自动关闭下拉框,默认为True
max_height下拉选项可以采用的最大高度,默认为None
min_stat_time下拉框折叠前的最短时间,默认值为配置文件中min_stat_time的值
select(data)选择具体的选项并收起下拉框后,下拉框显示的值
open(widget)打开下拉框,并将其附加到特定的小部件
dismiss(*largs)从窗口中删除下拉窗口小部件
add_widget(*largs)添加一个新的小部件作为此小部件的子级
clear_widgets()删除所有(或指定的)下拉框内的小部件
remove_widget(*largs)从该小部件的子级中删除一个小部件
on_select选择完成后触发,选择的数据作为第一个参数传递
on_dismiss选择完成后,折叠下拉框时触发

上一篇:高级UX部件——Bubble气泡

下一篇:高级UX部件——Popup弹窗

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静候光阴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值