如何从mainloop中返回函数的值?

时间:2018-02-12 23:55:11

标签: python tkinter

在此代码中,我想return设置function以外的值,但不能。

我该怎么办?

from tkinter import *

temp= 0
def sel():
   selection = "You selected the option " + str(var.get())
   label.config(text = selection)
   temp=selection
   return temp

root = Tk()
var = IntVar()
R1 = Radiobutton(root, text="Option 1", variable=var, value=1,
                 command=sel)
R1.pack( anchor = W )
R2 = Radiobutton(root, text="Option 2", variable=var, value=2,
                 command=sel)
R2.pack( anchor = W )
R3 = Radiobutton(root, text="Option 3", variable=var, value=3,
                 command=sel)
R3.pack( anchor = W)
label = Label(root)
label.pack()
print (sel())
root.mainloop()

为什么print功能不显示结果?

1 个答案:

答案 0 :(得分:0)

在GUI运行之前调用print函数。

如果您想在选择单选按钮时打印消息,则需要将其添加到sel()功能,例如

def sel():
    selection = "You selected the option " + str(var.get())
    label.config(text = selection)
    print(selection)
    # temp=selection ## this is unnecessary
    return selection

您的temp变量也不需要存在,您可以使用已经创建的变量。