我在Python中使用Tkinter来获取一个文件夹路径的用户输入(tkint . entry)。当用户单击GUI上的按钮时,此路径将被接受(get.Entry),并创建该路径中的文件列表(os.listdir) 我想要一个下拉菜单选项菜单来显示这个列表。 即使filelist变量是非空的,我当前的代码也不会显示文件列表。为什么会这样? 在代码完全运行之后,我检查了filelist,发现它不是空的。 为什么OptionMenu会将它视为空的呢? 以下是我的代码:
import os
import tkinter as tk
from tkinter import ttk
from IPython.core.debugger import set_trace
filepath = ""
filename = ""
filelist = [""]
root = tk.Tk()
def click():
global filepath, filename, filelist
filepath = e.get()
filelist = os.listdir(filepath)
myLabel = tk.Label(root,text = filelist).pack()
path = tk.StringVar()
e = tk.Entry(root,textvariable = path)
e.pack()
myButton = tk.Button(root, text = "click", command = click).pack()
optionVar = tk.StringVar()
op = tk.OptionMenu(root,optionVar,*filelist)
op.pack()
root.mainloop()
Pic1显示了我的文件夹的内容。 在这里输入图像描述 我发现filelist数组中某些项周围的花括号是由于文件名中的空格造成的。 Pic2显示了脚本的输出。Print(filelist)本身显示空的filelist。 当按下“click”按钮时,标签将打印包含三个项目的文件列表。 但是OptionMenu没有看到这个更新的文件列表。 在这里输入图像描述 问题来源StackOverflow 地址:/questions/59383314/having-trouble-with-tkinter-optionmenu
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。