标题告诉你一切,我在文件夹中找到了一些列表文件,stackoverflow问题。但没有一个我想要的。
我真的很感谢你的帮助。这里有一些代码可以帮助您构建答案。
from tkinter import *
import tkinter.messagebox as box
window = Tk()
window.title( '<title>' )
frame = Frame( window )
listbox = Listbox( frame )
listbox.insert( 1, '<filename>' )
listbox.insert( 2, '<filename>' )
listbox.insert( 3, '<filename>' )
def dialog() :
box.showinfo( 'Selection' , 'Your Choice: ' + \
listbox.get( listbox.curselection() ) )
btn = Button( frame, text = 'View Info', command=dialog )
btn.pack( side = RIGHT , padx = 5 )
listbox.pack( side = LEFT )
frame.pack( padx = 30, pady = 30 )
window.mainloop()
答案 0 :(得分:1)
我知道老问题了,但是遇到了这个问题,上面的答案对我不起作用,但是找到了解决方案:
from tkinter import *
import os
...
myList = os.listdir('<folder location>')
myListBox = Listbox(<frame>)
for file in myList:
MyListBox.insert(END, file)
MyListBox.pack()
...
这只会在页面加载时用指定目录中的文件填充一次列表框。
我能够将其放入函数中,并在页面加载时调用一次函数,但是随后我在列表下方添加了一个按钮以在单击时刷新。 制作您的按钮(command = RefreshList)
...
def RefreshList():
myList = os.listdir('<folder location>')
print(MyList)
MyListBox.delete(0, END)
for file in MyList:
MyListBox.insert(END, file)
RefreshList()
...
我认为,当将新项目添加到目录中时,您可以使其自动刷新,并且我相信这与循环有关,len()可以计算目录中文件的数量,然后计算项目的数量在列表中。将2与!=进行比较,如果True不执行任何操作,则省略RefreshList()
或者,如果要从应用程序中保存文件,则可以在按钮保存功能的末尾包含“ RefreshList()”,这样,一旦将新文件保存到目录中,它将重新加载目录内容进入列表框
答案 1 :(得分:0)
由于您在编写程序时不知道要插入的项目数,因此请替换
listbox = Listbox( frame )
listbox.insert( 1, '<filename>' )
listbox.insert( 2, '<filename>' )
listbox.insert( 3, '<filename>' )
与
listbox = Listbox(frame)
for name in files(dir):
listbox.insert('end', name)
我留给你用你想要的files
目录列表函数调用替换os
。