如何通过按下按钮从 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 [重复]

如果用户在返回键盘之前按下按钮,如何将按钮操作应用于文本字段

如何通过单击tkinter中不同窗口中的按钮来获取位于窗口中的GUI文本字段的参数? [重复]

如何使用 Tkinter 按钮输入内容

登录按钮按下后,如何获取Tkinter entry的值并传递给SQL查询?

按下返回键时如何通过多个文本字段输入进行选项卡?