首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python tkinter从命令中使用的函数返回值

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

Stack Overflow用户
提问于 2012-10-27 19:49:46
回答 5查看 62.7K关注 0票数 12

如何获取从A到C的返回值?顺便说一句,我没有使用class。

代码语言:javascript
运行
复制
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)
EN

回答 5

Stack Overflow用户

发布于 2012-10-27 22:27:08

简短的回答是:你不能。回调不能返回任何东西,因为没有地方可以返回它--除了事件循环,它不会对返回值做任何事情。

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

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

代码语言:javascript
运行
复制
def button():
    global C
    mylabel = Label(myGui, text = "hi").grid(row = 0, column = 0)
    A = B.get()
    C = A
票数 15
EN

Stack Overflow用户

发布于 2012-10-27 20:02:08

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

代码语言:javascript
运行
复制
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
票数 5
EN

Stack Overflow用户

发布于 2017-10-19 23:42:48

老问题,但大多数答案都建议使用全局变量。我不喜欢在我的项目中使用太多的全局变量,所以这是我的解决方案。

在声明Tkinter按钮时,可以使用lambda函数作为命令。这个lambda可以与与您定义的按钮位于同一名称空间中的变量交互。确保在初始化按钮之前定义此变量。

代码语言:javascript
运行
复制
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 = lambda: C=button()).grid(row = 1, column = 1)

根据您的项目组织,您可能需要将self作为button的参数,但概念是相同的。Lambda命令对于将参数传递给按钮命令也很有用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13099908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档