kivy完全解析016 CustomDropDown

匿名函数lambda x: x * x实际上就是:
def f(x):
    return x * x
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print "相加后的值为 : ", sum( 10, 20 )
print "相加后的值为 : ", sum( 20, 20 )
##############################################
<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')

from kivy.app import App
from kivy.uix.dropdown import DropDown
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
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()

```

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210516034142531.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zMzU5NTU3MQ==,size_16,color_FFFFFF,t_70)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值