如何通过按下按钮从 tkinter 输入字段返回变量以在另一个函数中使用?
Posted
技术标签:
【中文标题】如何通过按下按钮从 tkinter 输入字段返回变量以在另一个函数中使用?【英文标题】:How do I return a variable from a tkinter Entry field to use in another function by pressing a button? 【发布时间】:2022-01-11 19:25:36 【问题描述】:这是我的程序的简化版本,我在其中创建了一个带有输入字段和按钮的用户界面。基本上,程序应该将用户的输入存储为一个变量,以便能够在另一个返回我的结果的函数中使用它。问题:我找不到返回变量的方法,以便在按下提交按钮时进一步使用它。我怎样才能做到这一点?代码如下:
win = tk.Tk()
canvas1 = tk.Canvas(win, width = 800, height = 700, relief = 'raised')
canvas1.pack()
B = tk.StringVar()
C = ""
def run(C):
D = C + 's'
return D
def button():
global C
A = B.get()
C = A
# tried return A but didn't work
e = tk.Entry(win, textvariable = B)
canvas1.create_window(310, 65, window=e)
Submit = tk.Button(win, text = "Submit", command = button)
#tried with lambda function but didn't work
canvas1.create_window(700, 250, window=Submit)
print(run(C))
win.mainloop()
【问题讨论】:
所以在用户按下按钮后,run(C)
的结果应该出现在终端中,并且用户在条目中给出了 C?
其实后面需要用到run(C)的返回值,print(run(C))只是一个简化
您为什么不直接在run
中调用B.get()
或e.get()
?
【参考方案1】:
您可以像这样简单地编写代码:
Submit = tk.Button(win, text = "Submit", command = lambda:button(e.get()))
按钮的定义是:
def button(user_input):
print(user_input)
这里,e.get()
将从 Entry 字段中获取数据,并将作为参数传递给函数。
【讨论】:
有什么办法可以从按钮函数返回 user_input 并在运行函数中使用它而不是在那里打印?之后我真的需要在主功能中的按钮功能之外使用该变量以上是关于如何通过按下按钮从 tkinter 输入字段返回变量以在另一个函数中使用?的主要内容,如果未能解决你的问题,请参考以下文章
如果用户在返回键盘之前按下按钮,如何将按钮操作应用于文本字段
如何通过单击tkinter中不同窗口中的按钮来获取位于窗口中的GUI文本字段的参数? [重复]