首页 > 解决方案 > 如何在 kivy 绑定 python 中使用 lambda?

问题描述

我正在学习将下拉对象与文档示例一起使用

from kivy.uix.dropdown import DropDown
from kivy.uix.button import Button
from kivy.base import runTouchApp

dropdown = DropDown()
for index in range(10):
    btn = Button(text='Value %d' % index, size_hint_y=None, height=44)

    btn.bind(on_release=lambda btn: dropdown.select(btn.text))

    dropdown.add_widget(btn)
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)

我知道它是一个 lambda 函数,它的参数名称应该像普通函数一样是任意的,但在第一种情况下,参数“btn”指的是声明它的 Button 实例(为了提取那里的文字)。

lambda 的第二次出现在我看来更加罕见,因为它有两个参数“instance”和“X”,但是对于 setattr,只使用了“X”,我设法打印了那个参数,它是一个

标签: pythonlambdadrop-down-menukivydropdown

解决方案


推荐阅读