我查看了stackOverflow上的几个帖子来解释答案,但无论我使用哪个帖子,我都无法从我的条目小部件中获取字符串;它只是检测到一串“”
这是我的代码:
def buttonTest():
global score
gui.title("Test")
for child in gui.winfo_children():
child.destroy()
global questionText
global questionAnswer
questionText = StringVar()
questionAnswer = 0
question = Label(gui, textvariable = questionText, fg = "black", bg = "white")
question.grid(row = 0, column = 1)
userInput = StringVar()
input = Entry(gui, textvariable = userInput)
input.grid(row = 1, column = 0)
swapQuestion()
checkAns = Button(text = "Check answer", command = partial(checkAnswer, userInput.get(), questionAnswer), fg = "black", width=10)
checkAns.grid(row = 1, column = 2)
答案 0 :(得分:1)
请阅读并遵循此SO help page。您的代码缺少运行所需的行,并且包含与您的问题无关的行。它也缺少缩进。
您的问题是,在用户输入任何内容之前,您只需在创建按钮时调用userInput.get()
一次。那时,它的值确实是''
。您必须在按钮命令功能中调用它,每次按下按钮时都会调用该功能。
这是一个运行和工作的最小完整示例。
import tkinter as tk
root = tk.Tk()
user_input = tk.StringVar(root)
answer = 3
def verify():
print(int(user_input.get()) == answer) # calling get() here!
entry = tk.Entry(root, textvariable=user_input)
entry.pack()
check = tk.Button(root, text='check 3', command=verify)
check.pack()
root.mainloop()