python tkinter从命令中使用的函数返回值

men*_*you 9 python tkinter python-3.x

我怎样才能得到A到C的返回值?顺便说一句,我不是在上课.

def button:
    mylabel = Label(myGui, text = "hi").grid(row = 0, column = 0)
    A = B.get()
    return A

B = StringVar()
C = ""
myentry = Entry(myGui, textvariable = B).grid(row = 1, column = 0)
Submit = Button(myGui, text = "Submit", command = button).grid(row = 1, column = 1)
Run Code Online (Sandbox Code Playgroud)

Bry*_*ley 12

简短的回答:你做不到.回调函数无法返回任何内容,因为除了事件循环之外没有任何地方可以返回它 - 它不会对返回值执行任何操作.

在基于事件的应用程序中,您通常要做的是在类上设置属性.或者,如果您是初学者,则可以设置全局变量.使用全局变量对于必须在一段时间内保持的实际代码不是一个好主意,但它可以用于实验.

因此,例如,因为C在您的示例中看起来是一个全局变量,您将执行以下操作:

def button():
    global C
    mylabel = Label(myGui, text = "hi").grid(row = 0, column = 0)
    A = B.get()
    C = A
Run Code Online (Sandbox Code Playgroud)


unu*_*tbu 5

您可以C.setbutton函数内部调用:

def button:
    mylabel = Label(myGui, text = "hi").grid(row = 0, column = 0)
    A = B.get()
    C.set(A)
    # return A   # return values are useless here
Run Code Online (Sandbox Code Playgroud)