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

2024-04-20 02:47:10 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将返回值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)

Tags: textgetreturndefcolumnbuttonhilabel
3条回答

简而言之:你不能。回调不能返回任何内容,因为没有地方可以返回它——除了事件循环,它对返回值没有任何作用。

在基于事件的应用程序中,通常要做的是在类上设置属性。或者,如果您是初学者,可以设置全局变量。对于必须随时间而维护的实际代码来说,使用全局变量不是一个好主意,但对于实验来说,这是可以的。

因此,例如,由于C在您的示例中似乎是一个全局变量,您可以执行以下操作:

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

很容易就可以宣布一个全球性的。

def button:
global A
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)
# and then A is not empty
B= A

您可以从button函数中调用C.set

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

相关问题 更多 >