如何从 Entry 小部件获取文本
How to get text from Entry widget
我查看了 Whosebug 上的几篇解释答案的帖子,但无论我使用哪一篇,我都无法从我的条目小部件中获取字符串;它只是检测到一串“”
这是我的代码:
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)
请阅读并遵循此 SO help page。您的代码缺少 运行 所需的行,并且包含与您的问题无关的行。它还缺少缩进。
您的问题是您在创建按钮时只调用了一次 userInput.get()
,然后用户才能输入任何内容。那时候,它的价值确实是''
。您必须在每次按下按钮时调用的按钮命令函数中调用它。
这是一个最小的完整示例,运行s 和工作。
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()
简单示例:
from tkinter import *
# Get Entry contents
def print_input():
print(input_variable.get())
window = Tk()
# Create widgets
input_variable = StringVar()
entry_variable = Entry(window, textvariable=input_variable).grid(row=0, column=0)
button_submit = Button(window, text="Submit",command=print_input).grid(row=1, column=0)
window.mainloop()
其中:
input_variable
是你的变量
entry_variable
是输入框
button_submit
调用 print_input()
获取并打印存储在 input_variable
中的 entry_variable
的内容
我查看了 Whosebug 上的几篇解释答案的帖子,但无论我使用哪一篇,我都无法从我的条目小部件中获取字符串;它只是检测到一串“”
这是我的代码:
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)
请阅读并遵循此 SO help page。您的代码缺少 运行 所需的行,并且包含与您的问题无关的行。它还缺少缩进。
您的问题是您在创建按钮时只调用了一次 userInput.get()
,然后用户才能输入任何内容。那时候,它的价值确实是''
。您必须在每次按下按钮时调用的按钮命令函数中调用它。
这是一个最小的完整示例,运行s 和工作。
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()
简单示例:
from tkinter import *
# Get Entry contents
def print_input():
print(input_variable.get())
window = Tk()
# Create widgets
input_variable = StringVar()
entry_variable = Entry(window, textvariable=input_variable).grid(row=0, column=0)
button_submit = Button(window, text="Submit",command=print_input).grid(row=1, column=0)
window.mainloop()
其中:
input_variable
是你的变量entry_variable
是输入框button_submit
调用print_input()
获取并打印存储在input_variable
中的
entry_variable
的内容