开发者社区> 问答> 正文

Tkinter选项菜单有问题

我在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

展开
收起
kun坤 2019-12-27 10:30:31 408 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载