Car*_*l M 5 python user-interface tkinter python-2.7
我正在使用Tkinter和Python 2.7.6创建一个GUI.
我有一个下拉菜单,使用以下代码创建并最初禁用:
self.dropdown = Tkinter.OptionMenu(self, self.dropdownVar, "Select SED...")
self.dropdown.grid(column=0,row=1)
self.dropdown.configure(state="disabled")
Run Code Online (Sandbox Code Playgroud)
用户选择目录后,我调用一个函数onEnterDir(),然后获取该目录中的文件列表.所以,我有一个名为变量的文件列表dirFiles.
我想要的是然后使用此dirFiles列表中的项目更新下拉菜单中的选项.我该怎么做?
我的问题在这里与其他人不同,因为我只想更新项目列表self.dropdown显示.它不依赖于任何其他小部件.我有一个我想要放入的python列表.我该怎么做?
您可以在您提到的问题答案中使用相同的技术:
例如:
import os
from functools import partial
from Tkinter import *
from tkFileDialog import askdirectory
def onEnterDir(dropdown, var):
path = askdirectory()
if not path:
return
filenames = os.listdir(path)
dropdown.configure(state='normal') # Enable drop down
menu = dropdown['menu']
# Clear the menu.
menu.delete(0, 'end')
for name in filenames:
# Add menu items.
menu.add_command(label=name, command=lambda name=name: var.set(name))
# OR menu.add_command(label=name, command=partial(var.set, name))
root = Tk()
dropdownVar = StringVar()
dropdown = OptionMenu(root, dropdownVar, "Select SED...")
dropdown.grid(column=0, row=1)
dropdown.configure(state="disabled")
b = Button(root, text='Change directory',
command=lambda: onEnterDir(dropdown, dropdownVar))
b.grid(column=1, row=1)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3353 次 |
| 最近记录: |