我无法弄清楚为什么按下了“保存”按钮,放入“ ChildName”变量的值为空白?

def AddClassMember():
    global ChildNameEntryVariable
    global AddClassMemberWindow

    AddClassMemberWindow = Tk()

    ChildNameEntryVariable = StringVar()
    ChildNameEntry = Entry(AddClassMemberWindow, textvariable = ChildNameEntryVariable)
    ChildNameEntry.grid(row=2,column=1)
    ChildNameEntrySave = Button(AddClassMemberWindow, text = "save", command = SaveChildName)
    ChildNameEntrySave.grid(row=1,column=1)

def SaveChildName():
    PupilName = ChildNameEntryVariable.get()

    with db:
        cursor.execute(''' INSERT INTO 'Pupil Information' (PupilNames) VALUES (?)''', ([PupilName, ]))


我已经尝试了好几个小时了。提前致谢。

最佳答案

这是一个弹出窗口,不是吗?您在某个地方打开了另一个tk窗口,对不对?如果是这样,快速的解决方法是为StringVar提供正确的母版:

AddClassMemberWindow = Tk()

ChildNameEntryVariable = StringVar(AddClassMemberWindow)


正确的解决方法是记住在程序中不要多次使用Tk()。如果需要更多窗口,请使用Toplevel小部件进行制作。

关于python - 为什么StringVar()。get()在python中返回空值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43147503/

10-09 21:20