菜单项正在加载相同的命令

时间:2017-03-29 15:27:58

标签: python python-3.x tkinter

def generate_menu(self):
    self.some_menu = tk.Menu(self.menubar, tearoff=0)
    self.menubar.add_cascade(label="Some Label", menu=self.some_menu)

    some_directory = SCRIPT_ROOT + "/" + SOME_FOLDER

    for filename in os.listdir(some_directory):
        test_file = (test_directory + "/" + filename)
        print(test_file)
        self.some_menu.add_command(label=filename, command=lambda: self.files.add_files(test_file))

此代码生成一个菜单项,其下拉列表包含:

  • 档案1
  • 文件2
  • 文件3

等等。

每个文件选项都应该有一个单独的命令调用相同的函数,但使用不同的参数。

self.files.add_files(<argument should be based on iteration of for loop)

发生的事情是每个文件选项实际上都使用文件3的命令(或下拉列表中的最后一个文件)。

某处有逻辑错误 - 你能发现它吗?

0 个答案:

没有答案