如何从tkinter按钮回调中返回值

时间:2015-12-13 20:10:51

标签: python-3.x tkinter

我有一个定义了tkinter窗口并在其中运行的函数。该窗口中有一个按钮,我需要按钮来执行return语句并返回该函数的值。

除了通过按钮回调运行无参数函数之外的其他方法似乎是lambda,但我无法找到使用lambda执行此操作的方法,因为任何值都返回来自lambda寄存器作为lambda的返回值。

我的代码的主旨是这样的:

from tkinter import *

def function():
    root = Tk()

    entry = Entry(root)
    entry.pack()

    button = Button(root, text = "I'm a button", command = return entry.get()) #Does not work, you can't do this in a callback
    button.pack()

    root.mainloop()

我想弄清楚的是如何重写该返回语句,使其对command参数有效。

1 个答案:

答案 0 :(得分:2)

你真的不能这样做。最好的方法是使用一个功能,但我不确定你为什么要这样做。这看起来有点奇怪......正如评论的那样,Tkinter脚本与普通的Python脚本运行方式不同,所以没有什么能够使用返回的值。如果需要,可将其存储为变量。

我只想创建一个将其存储为可变的函数。

def foo():
    gah=entry.get()
    # return entry.get()
    # stuff or no stuff

button=Button(root, text="ghost", command=foo)