gpt4 book ai didi

python - 使用 Tkinter 获取动态生成的 Entry 字段的值

转载 作者:行者123 更新时间:2023-12-01 05:10:47 24 4
gpt4 key购买 nike

我有一个属性列表,例如成本、价格、isObsolete 等。我想将其动态生成为带有条目字段的标签,以便用户将正确的值插入其中。

似乎最好的方法是将属性与值存储在字典中,并在条目字段更新时更新此字典。

我尝试在分配给我的输入字段的 StringVar 上使用trace_variable函数,但是当我在字段中输入(作为测试)或当我在类上运行函数来获取字典的键和值:

from Tkinter import *
import ttk

t = ['cost','price','isObsolete']

root = Tk()

rowAcc = 1
colAcc = 0

d = {}

for item in t:
newValue = StringVar()

def callback(*args):
print args[0] + " variable changed to " + newValue.get()
d[item] = newValue.get()

newValue.trace_variable("w", callback)

ttk.Label(root, text=item).grid(column=colAcc, row=rowAcc, sticky=(N, W))

reqEntry = ttk.Entry(root, textvariable=newValue, width=19)
reqEntry.grid(column=colAcc, row=rowAcc + 1, sticky=(N, W), pady=3, padx=1)

colAcc += 1

def printDict():
for key in d:
print key, d[key]

root.mainloop()

有没有办法调整它来实现我的结果,或者是否有更好的解决方案来获取动态生成的输入字段的值?

最佳答案

StringVar保存到数组中

from Tkinter import *

master = Tk()

frame = Frame(master)
frame.pack()

s_vars = []

for i in range(5):
s_vars.append( StringVar() )

def onChange(a ,b, c, s_var):
print a, "changed to", s_var.get()

s_vars[i].trace('w', lambda a, b, c, x=i: onChange(a, b, c, s_vars[x]) )

en = Entry(frame, textvariable=s_vars[i])
en.pack()

s_vars[i].set( str(i) )

mainloop()

关于python - 使用 Tkinter 获取动态生成的 Entry 字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24282331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com