如何为每个上传的文件创建 Tkinter 条目?
How to create Tkinter entry for each file uploaded?
我正在尝试编写一个代码,打开一个文件浏览器卷绕器到 select 数据文件,然后为每个上传的文件创建一个 'start' 值的输入框。然后,当我 运行 另一个函数时,我希望能够访问这些 'start' 值。我已经成功地为每个上传的文件制作了文件浏览器和输入字段,但我不确定在按下另一个按钮激活不同功能时如何将输入字段附加到列表中。非常感谢任何帮助。
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())
我正在尝试编写一个代码,打开一个文件浏览器卷绕器到 select 数据文件,然后为每个上传的文件创建一个 'start' 值的输入框。然后,当我 运行 另一个函数时,我希望能够访问这些 'start' 值。我已经成功地为每个上传的文件制作了文件浏览器和输入字段,但我不确定在按下另一个按钮激活不同功能时如何将输入字段附加到列表中。非常感谢任何帮助。
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())