我有一个功能,可以基于文件夹中的子文件夹创建按钮。它会为每个子文件夹创建一个按钮,并为其指定子文件夹的名称。
按下后,我希望按钮打开另一个功能并传递该功能的名称。
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 layout
def _printname(self, name):
print(name)
我有5个子文件夹,我希望有一个按钮来打印其特定名称,但是它们都将打印由第一个功能运行的最后一个文件夹的名称。
答案 0 :(得分:0)
您的最后一个链接解决了我的问题。谢谢-只需附上我编辑的代码即可。
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)