我使用的代码需要使用tkinter窗口来询问用户输入(我在代码的其他部分没有使用tkinter)。
我的问题是,我只需要使用tkinter窗口即可在按下表单上的“确定”按钮后返回一个值,这也会关闭表单。到目前为止,使它正常工作的唯一方法是使用全局变量。我已经搜索了其他解决方案,但是它们要么不返回值(它们只是打印出来),要么不允许为提示传递文本。
如果能提供帮助,请提前感谢。
from tkinter import *
def input_text(prompt):
def ok():
global ret
ret = entry.get()
master.destroy()
master = Tk()
lbl = Label(master, text=prompt)
lbl.pack()
entry = Entry(master)
entry.pack()
entry.focus_set()
butt = Button(master, text = "OK", width = 10, command = ok)
butt.pack()
mainloop()
print("I am here!")
ret=""
input_text("Enter something")
print("ret is:", ret)
答案 0 :(得分:0)
一夜安眠后,我解决了这个问题:-)
解决方案是创建一个类并通过属性返回响应。这是存档的代码...以防万一有人有类似问题。
from tkinter import *
class InputForm():
def __init__ (self, prompt):
self.prompt = prompt
self.response = ""
def ok():
self.response = entry.get()
master.destroy()
master = Tk()
lbl = Label(master, text=self.prompt)
lbl.pack()
entry = Entry(master)
entry.pack()
entry.focus_set()
butt = Button(master, text = "OK", width = 10, command = ok)
butt.pack()
mainloop()
abc = InputForm("Enter something").response
print("returned value is:", abc)