gpt4 book ai didi

python - 如何让按钮在按下时将其名称传递给函数?

转载 作者:太空宇宙 更新时间:2023-11-03 21:18:46 26 4
gpt4 key购买 nike

我有一个函数可以根据文件夹中的子文件夹创建按钮。它为每个子文件夹创建一个按钮,并为其指定子文件夹的名称。

按下时,我希望按钮打开另一个函数并传递该函数的名称。

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 个子文件夹,我希望有一个按钮可以打印其特定名称,但它们都打印第一个函数运行的最后一个文件夹的名称。

最佳答案

你的最后一个链接解决了我的问题。谢谢 - 刚刚附上我编辑的代码。

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)

关于python - 如何让按钮在按下时将其名称传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54480067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com