python - 如何在 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”,我设法打印了那个参数,它是一个
解决方案
推荐阅读
- vue.js - ChartJS和VueJS中条形图中每个条的颜色不同
- snackbar - 基本 Snackbar 示例未显示在 Material Design Components for Web
- excel - 循环将粘贴行复制到列中,执行计算并存储结果
- c# - 通用windows平台后台运行巨大进程时如何制作交互式UI?
- angular - Themeable Browser Cordova Plugin:后退、前进和关闭按钮的图像未显示
- node.js - NodeJS Commander 结构化子命令
- apache-spark-sql - 在 JAVA 中使用 Spark SQL 映射数据集中的字段值
- python - 如何在图像的多个矩形边界框中应用阈值?
- grep - grep 查找日志文件中不在同一行的两个单词
- java - 如何使方法接受 Java 中的类类型变量?