如何为每个上传的文件创建Tkinter条目?



我试图写一个代码,打开一个文件浏览器绕线器来选择数据文件,然后为每个上传的文件创建一个'开始'值的输入框。然后,当我运行另一个函数时,我希望能够访问这些"开始"值。我已经成功地为每个上传的文件制作了文件浏览器和输入字段,但是我不确定在按另一个按钮激活不同功能时如何将输入字段附加到列表中。如有任何帮助,不胜感激。

import tkinter as tk
from tkinter import (filedialog,Label,Button,Tk,W,Entry)
import os
all_files = []
start_vals = []
window = Tk()
window.title('Entry Test')
window.geometry("500x300")

def browse_files():
filename_list = list(filedialog.askopenfilenames(initialdir = '/',
title = "Select Files",filetypes = (("csv files","*.csv"),
("all files","*.*"))))

for i in filename_list:
all_files.append(i)

Label(window, text=f'Selected Files ({len(all_files)}):', 
font=("arial", 13)).grid(row=4, sticky=W)

Label(window, text='Start:').grid(row=4, column=1)

u = 0
while u < len(all_files):    
Label(window, text=str(os.path.basename(all_files[u])), 
font=("arial", 11)).grid(row=u+5, column=0, sticky=W)

e1 = Entry(window)        
e1.grid(row=u+5, column=1)

u+=1    

return 
def print_entry():
for i in start_vals:
print(i)
return
Button(window, text='Browse', command=browse_files).grid(row=3, column=1, sticky=W, pady=4)
Button(window, text='Print start vals', command=print_entry).grid(row=3, column=2, sticky=W, pady=4)
window.mainloop()

您可以将browse_files()中的条目添加到start_vals中,然后遍历条目列表以获得print_entry中的值:

def browse_files():
...
while u < len(all_files):
...
e1 = Entry(window)
start_vals.append(e1)
...
def print_entry():
for e in start_vals:
print(e.get())

最新更新