Python-在for循环中调用按钮,让它们调用不同的函数

问题描述 投票:0回答:1

我正在读取目录中的文件,因此按钮的数量未知(取决于目录中有多少文件),并且我想为目录中的每个文件创建一个可以删除文件的按钮。所以我认为用for循环来做是一个好主意。但是我无法弄清楚这些按钮如何调用不同的功能(或将删除特定文件的功能)。它们都将调用相同的函数,因为我必须为每个按钮指定一个新函数。

尝试给按钮变量赋值失败。

尝试为每个按钮赋予函数变量失败。

而且我尝试了更多……

这是我的代码:

def delete():
    fileCounter = 0

    deleteFile = [os.path.splitext(filename)[0] for filename in os.listdir(myPath)]
    for item in deleteFile:
        deleteButton = Button(myFrame, text=str(deleteFile[fileCounter]), command=deleteItem)
        deleteButton.grid(row=fileCounter, column=0, padx=10, pady=10)
        fileCounter += 1

并且在运行该功能之后,我要运行正在删除文件的功能。

感谢您的帮助; )

python function button tkinter
1个回答
0
投票

我认为您应该更改方式,因为有更简单的方式。

您可以使用id;您可以为目录列表的每个项目指定一个ID,然后单击按钮,该按钮将返回我们一个ID,该ID可以从您的目录列表中调用,最终您可以删除文件或目录。

© www.soinside.com 2019 - 2024. All rights reserved.