【发布时间】:2018-01-29 21:33:59
【问题描述】:
由于某种原因,当我在此代码的输入字段中输入内容,然后点击保存按钮,该按钮应调用以简单地打印姓名和首字母缩写,它不会使用当前输入框中的内容。
我的解释是,当单击按钮创建窗口时,它会从代码中调用任何内容,但不会动态检查输入框,即使我单击按钮保存(我认为会检查它)也是如此。关于如何做到这一点的任何想法?
这是一个顶层窗口,我用一个函数创建了主根,并有一个按钮调用这个函数来打开一个新窗口来编辑名称和首字母。
def SaveChanges(name, initials, person):
print(name)
print(initials)
## if person.initials in employees: del employees[person.initials]
## employees[str(initials)] = person
## employees[str(initials)].name = str(name)
##
## Save()
##
## CreateMain()
def EditEmployee(person):
window = Toplevel()
l = Label(window,text='Edit Employee')
l.grid(row=0,column=0,columnspan=2)
nameLabel = Label(window,text='Name:')
nameLabel.grid(row=1,column=0)
initialsLabel = Label(window,text='Initials:')
initialsLabel.grid(row=2,column=0)
name = Entry(window)
name.grid(row=1,column=1)
name = name.get()
print(name)
initials = Entry(window)
initials.grid(row=2,column=1)
initials = initials.get()
print(initials)
save = Button(window, text='Save',
command= lambda n=name, i=initials, p=person: SaveChanges(n,i,p))
save.grid(row=3, column=0,columnspan=2)
【问题讨论】:
-
请提供minimal reproducible example。上面的代码本身什么都不做。
-
问题已经得到解答和解决,是否有必要这样做?
-
没有什么是必要的。但是,提供minimal reproducible example 会提高您问题的质量,从而更有可能帮助他人。
-
我认为给出的答案很快就概述了混乱所在。