首页 > 解决方案 > 根据用户的决定创建一组条目小部件,并使用 Tkinter 找到它们的平均值

问题描述

目标:程序接收用户的输入,关于需要多少个条目小部件。如果用户输入“5”,则应创建 5 个条目小部件,然后用户输入 5 个数字,然后程序应显示这些数字的平均值。

def create_entries(r):
    if r % 2 == 0:
        entry = Entry(frame)
        entry.grid(row=r,column=0,padx=2)
        return entry
    else:
        entry = Entry(frame)
        entry.grid(row=r-1,column=1,padx=2)
        return entry
List_of_entries = [create_entries(r) for r in range(user_input)]

实际上,上面的程序创建了固定数量的条目并将条目小部件存储为列表。通过调用List_of_entries[0].get(),我可以访问第一个文本字段的值,等等。这个程序将文本字段排列在一个矩阵中。这是主函数中的一个子函数,只要按下 Return 键-函数开始。

我的问题:如果用户输入“5”然后按回车键,并且当用户清除文本字段并输入“4”(小于 5)并按回车按钮时,该程序会创建“5 个条目小部件”显示“5 而不是 4 条目小部件”。请帮我解决我的问题

电子邮件:p.rhubanraj@gmail.com

了解更多信息。

标签: pythonpython-3.xtkintertkinter-entry

解决方案


您可以从定义一个空列表开始,然后附加到列表而不是通过列表理解创建。

List_of_entries = []

def create_entries(r):
    global List_of_entries
    for i in List_of_entries:
        i.destroy()
    List_of_entries = []
    for i in range(r):
        entry = tk.Entry(frame)
        entry.grid(row=i,column=0,padx=2)
        List_of_entries.append(entry)

推荐阅读