我有一个基于文件夹中的子文件夹创建按钮的功能。它为每个子文件夹创建一个按钮,并为其指定子文件夹的名称。按下时,我希望按钮打开另一个函数并传递该函数的名称。def _sidepanel(self): curdir = "/Users/xxx/Desktop/Test/" layout = BoxLayout(orientation="vertical", pos_hint={"x": 0.0, "y": 0.0}, size_hint=(0.1,1)) for folders in glob(join(curdir, "*")): name = basename(folders) btn = Button(text=name, on_press=lambda x: self._printname(name)) layout.add_widget(btn) return layoutdef _printname(self, name): print(name)我有 5 个子文件夹,我希望有一个按钮来打印其特定名称,但它们都打印了第一个函数运行的最后一个文件夹的名称。
1 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
你的最后一个链接解决了我的问题。谢谢 - 刚刚附上了我编辑过的代码。
def _sidepanel(self):
curdir = "/Users/xxx/Desktop/Test/"
layout = BoxLayout(orientation="vertical", pos_hint={"x": 0.0, "y": 0.0}, size_hint=(0.1,1))
layout.add_widget(Button(text="Import\nPhotos"))
layout.add_widget(Button(text="Create\nReport"))
layout.add_widget(Button(text="Save?"))
layout.add_widget(Button(text="Button 4"))
for folders in glob(join(curdir, "*")):
name = basename(folders)
btn = Button(text=name, on_press=lambda n=name:self._showphotos(n))
layout.add_widget(btn)
return layout
def _showphotos(self, entry):
print(entry.text)
添加回答
举报
0/150
提交
取消