【问题标题】:How to create Tkinter entry for each file uploaded?如何为每个上传的文件创建 Tkinter 条目?
【发布时间】:2021-01-28 15:39:51
【问题描述】:

我正在尝试编写一个代码,该代码打开文件浏览器卷绕器以选择数据文件,然后为每个上传的文件创建一个“开始”值的输入框。然后,当我运行另一个函数时,我希望能够访问这些“开始”值。我已经成功为每个上传的文件创建了文件浏览器和输入字段,但我不确定在按下另一个按钮以激活不同功能时如何将输入字段附加到列表中。非常感谢任何帮助。

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()

【问题讨论】:

    标签: python python-3.x tkinter tkinter-entry


    【解决方案1】:

    您可以将条目追加到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())
    

    【讨论】:

    • 非常简单的解决方案,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    相关资源
    最近更新 更多