从使用for循环创建的列表中获取输入并将其存储为元组
当我创建由“ for Loop”生成的条目列表时,我有一个问题。在每个循环上,生成两个条目。 我的目的是用户单击“创建”按钮 - >从条目中获取数据,并将其存储在列表中,以“(弧,容量)”。
这是我的代码:
inputs = []
def show_inputs():
for input in inputs:
label.config(text=f'{input}\n')
edges_number = edges_variable.get()
if is_weighted_variable.get():
for i in range(edges_number):
edge_name_label = tk.Label(second_frame, text=f'Arc {i + 1}')
edge_weight_label = tk.Label(second_frame, text=f'Capacité {i + 1}')
edge_name_label.grid(row=i + 1, column=i - i)
edge_weight_label.grid(row=i + 1, column=i + 2 - i)
edge_name_entry = tk.Entry(second_frame, )
edge_weight_entry = tk.Entry(second_frame)
edge_name_entry.grid(row=i + 1, column=i - (i - 1))
edge_weight_entry.grid(row=i + 1, column=i + 3 - (i - 1))
inputs.append((edge_name_entry.get(), edge_weight_entry.get()))
else:
for i in range(edges_number):
edge_name_label = tk.Label(second_frame, text=f'Arc {i}')
edge_name_label.grid(row=i + 1, column=i - i)
edge_name_entry = tk.Entry(second_frame, )
edge_name_entry.grid(row=i + 1, column=i - (i - 1))
inputs.append(edge_name_entry.get())
show_inputs_button = tk.Button(second_frame, text="Creer", command=show_inputs)
show_inputs_button.grid(columnspan=2)
I have an issue, when I create a list of entries generated by a "for loop". on each loop, two entries get generated.
my purpose is when The user clicks the "create" button -> get the data from the entries and store it inside a list as tuples "(arc, capacity)".
This Is My Code :
inputs = []
def show_inputs():
for input in inputs:
label.config(text=f'{input}\n')
edges_number = edges_variable.get()
if is_weighted_variable.get():
for i in range(edges_number):
edge_name_label = tk.Label(second_frame, text=f'Arc {i + 1}')
edge_weight_label = tk.Label(second_frame, text=f'Capacité {i + 1}')
edge_name_label.grid(row=i + 1, column=i - i)
edge_weight_label.grid(row=i + 1, column=i + 2 - i)
edge_name_entry = tk.Entry(second_frame, )
edge_weight_entry = tk.Entry(second_frame)
edge_name_entry.grid(row=i + 1, column=i - (i - 1))
edge_weight_entry.grid(row=i + 1, column=i + 3 - (i - 1))
inputs.append((edge_name_entry.get(), edge_weight_entry.get()))
else:
for i in range(edges_number):
edge_name_label = tk.Label(second_frame, text=f'Arc {i}')
edge_name_label.grid(row=i + 1, column=i - i)
edge_name_entry = tk.Entry(second_frame, )
edge_name_entry.grid(row=i + 1, column=i - (i - 1))
inputs.append(edge_name_entry.get())
show_inputs_button = tk.Button(second_frame, text="Creer", command=show_inputs)
show_inputs_button.grid(columnspan=2)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要将小部件保存在列表中,而不是
.get()
方法的结果。稍后,您可以在列表上迭代以获取当前值:
或者,可以使用列表理解来返回值列表:
You need to save the widgets in the list, not the result of the
.get()
method.Later, you can iterate over the list to get the current values:
Or, you can use a list comprehension to return a list of values: