python - 根据用户的决定创建一组条目小部件,并使用 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
了解更多信息。
解决方案
您可以从定义一个空列表开始,然后附加到列表而不是通过列表理解创建。
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)
推荐阅读
- html - 在 Ruby on Rails 中使用 # 存根
- php - 执行 PHP 脚本时未在 Postman 中获取任何结果数据
- jquery - CRM 2011 Rest Builder 解决方案在执行或调用时出现 500 内部错误
- c# - 如何在 RavenDB 3.5 中以编程方式创建 ETL?
- android - 像电报一样的画廊条
- source-insight - sourceInsight 选项卡缩进
- mongodb - 如何在 Spring Boot 中对 MongoDB 执行更高级的查询
- html - 大图像打破了 flexbox “页脚始终位于底部”的结构
- android - 使用ffmpeg合并两个音频文件和一个带有控制音量的视频文件?
- jquery - Jquery 让 ajax 调用输入,但在等待响应时继续写入