我正在开发一个新的基于Instagram的应用程序。在
首先,我定义了一个类ImageButton,它将使我创建一个image button:
class ImageButton(ButtonBehavior, Image):
pass
然后我用这个类在网格中创建图像按钮。 这是我的代码:
^{pr2}$我当前的目标是当我按下ImageButton时,将网格layout
中的ImageButton添加到网格gridtest
中。在
我现在遇到的问题是btn.bind(on_press= lambda a:gridtest.add_widget(ImageButton(source = im+'.png') ))
当我按下图像按钮时,我在第二个网格中没有我按下的图像,而是在第一个网格中的最后一个图像。在
我想问题出在lambda,因为它不能访问我的循环,我也不能对它执行循环。 那么解决办法是什么呢?在
Python中的闭包(这里是用
lambda
创建的)是后期绑定,调用函数时会查找该值(实际上,如果在循环中定义了循环变量,则使用最后一个值)。在解决方案是将
^{1}$im
作为默认参数传递:相关问题 更多 >
编程相关推荐