python-3.x - 可以通过单击按钮来创建列表框
问题描述
我将创建多个条目框供用户输入,然后单击将所有条目值存储到数组中的按钮,条目将被清除,然后存储的用户可以存储另一组条目值。
所以这个按钮将执行 2 个功能: 1:将值存储到我的数组 2:使用来自第一个数组的值创建第一个列表框
结果,我可以得到多组数组,并且每组数组都有自己的列表框。
我没有找到相关的指南,或者“动态创建列表框”对我没有帮助。如果可行,可以分享示例。
解决方案
欢迎来到 Stack Overflow 社区。
据我了解您的问题,我已经尝试过
from tkinter import *
root = Tk()
def saveClear():
global entry_list
listbox = Listbox(root)
for entry in entry_list:
listbox.insert(END, entry.get())
entry.set('')
listbox.pack(padx = 10, pady = 10)
entry_list = []
for _ in range(5):
ent_var = StringVar()
ent = Entry(root, textvariable = ent_var)
entry_list.append(ent_var)
ent.pack(padx = 10, pady = 10)
but = Button(root, text = 'Save and Clear', command = saveClear)
but.pack(padx = 10, pady = 10)
root.mainloop()
更新:为了从 a 中获取值ListBox()
,您需要使用listvariable
带有目标的属性Variable()
来将值存储为元组并使用该.get()
方法来获取相同的值。
这是更新的代码:
from tkinter import *
root = Tk()
def retrieve(index):
global values
if index == 'all':
for value in values:
print(value.get())
else:
print(values[index].get())
values = []
def saveClear():
global entry_list, values
list_var = Variable()
listbox = Listbox(root, listvariable = list_var)
for entry in entry_list:
listbox.insert(END, entry.get())
entry.set('')
values.append(list_var)
listbox.pack(padx = 10, pady = 10)
entry_list = []
for _ in range(5):
ent_var = StringVar()
ent = Entry(root, textvariable = ent_var)
entry_list.append(ent_var)
ent.pack(padx = 10, pady = 10)
but = Button(root, text = 'Save and Clear', command = saveClear)
but.pack(padx = 10, pady = 10)
root.mainloop()
retrieve('all') #OR specify the index that you wish to retrieve
这里retrieve()
是在结束后调用的mainloop()
,即在主循环终止后执行,但您可以根据需要在代码中使用该函数。
希望它有所帮助。干杯!
推荐阅读
- c# - Swift 中的 C# 阻塞集合
- python-3.x - 'cp866' 的 Python 编码/解码错误
- julia - Polyfit 函数 Julia 出错
- android - 使用自适应启动器图标时出现 Lint 错误
- python - 为什么通过多处理库进行并行编程比通常的编程需要更长的时间?
- wordpress - 使用 Google Analytics 跟踪 Contact Form 7 中的下拉字段选择
- pdf - 连接pdf而不展平但保留字段
- asp.net - Visual Studio 2015 中 Web 参考处的问号图标
- linux - linux排序的奇怪行为
- javascript - 使用 SVG.js 选择文本元素