无法从python tkin条目获取更新的值

2024-09-28 13:28:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我是pythongui的新手。我试图从“abc”输入框中获取值。但是,它只能得到默认值(现在是58)。如果我改变了值,它就不能得到改变的(或当前的)值。非常感谢您的意见。在

fields = ('abc', 'def', 'ghi','jkl')
def outputdata(master, fields):
    entries = {}
    helpLf = LabelFrame(master, text="2. Bill of Materials:")
    helpLf.grid(row=0, column=9, columnspan=5, rowspan=8, \
            sticky='NS', padx=5, pady=5)
for n in range(len(fields)):
    lab = Label(helpLf, text= fields[n]+": ", anchor='w')
    lab.grid(row=n, column=5, padx=5, pady=5)
    ent = Entry(helpLf, bg="yellow")
    ent.insert(0,"58")
    ent.grid(row=n, column=7, padx=5, pady=5)
    entries[fields[n]] = ent
return entries

if __name__ == '__main__':
master = Tk()
ents = outputdata(master, fields)
t = outputdata(master, fields)['abc'].get()
Button(master, text='Show me the BoM', command = (lambda e=ents:clamp_number(e))).grid(row=10, column=0, sticky=W, pady=4)

Tags: textmasterfieldsdefcolumngridrowentries
1条回答
网友
1楼 · 发布于 2024-09-28 13:28:33

如果不知道clamp_number是什么,我就不能特别对您的代码进行评论。 但是,如果您想知道如何获得Entry小部件的“current”值,就必须使用StringVar变量。在

>>> from tkinter import Tk, StringVar, Entry
>>> root = Tk()
>>> sv = StringVar(root)
>>> entry = Entry(root, textvariable=sv)
>>> sv.get()
''
>>> entry.insert('insert', 'hello')
>>> sv.get()
'hello'
>>> 

这里发生的是,您将一个Entry小部件绑定到StringVar。您可以根据需要调用StringVarget()和{}方法。在

相关问题 更多 >

    热门问题