根据用户的决定创建一组条目小部件,并使用 Tkinter 找到它们的平均值
Creating a set of Entry Widgets as per the user's decision and find the average of them all with Tkinter
目标: 程序接受用户的输入,即需要多少个 Entry 小部件。如果用户输入“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()
,我可以访问第一个文本字段的值等等......这个程序将文本字段排列在 matrix.This 中是主函数中的一个子函数 -每当按下 Return 时,主函数就会启动。
我的问题:如果用户输入“5”然后按下 Return 键,并且当用户清除文本字段并键入“4”时,该程序会创建“5 个条目小部件” '(小于 5)并按下 Return 按钮,它仍然显示“5 而不是 4 个条目小部件”。请帮我解决我的问题
邮箱:p.rhubanraj@gmail.com
了解更多信息。
您可以先定义一个空列表,然后追加到列表而不是通过列表推导式创建。
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)
目标: 程序接受用户的输入,即需要多少个 Entry 小部件。如果用户输入“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()
,我可以访问第一个文本字段的值等等......这个程序将文本字段排列在 matrix.This 中是主函数中的一个子函数 -每当按下 Return 时,主函数就会启动。
我的问题:如果用户输入“5”然后按下 Return 键,并且当用户清除文本字段并键入“4”时,该程序会创建“5 个条目小部件” '(小于 5)并按下 Return 按钮,它仍然显示“5 而不是 4 个条目小部件”。请帮我解决我的问题
邮箱:p.rhubanraj@gmail.com
了解更多信息。
您可以先定义一个空列表,然后追加到列表而不是通过列表推导式创建。
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)