首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何访问tkinter中的输入框中包含输入的变量,并将其用于另一个模块?

如何访问tkinter中的输入框中包含输入的变量,并将其用于另一个模块?
EN

Stack Overflow用户
提问于 2022-05-09 03:03:34
回答 1查看 339关注 0票数 0

如何从tkinter输入框访问包含用户输入的变量?我想在另一个模块中使用输入。我很难做到这一点,因为它在一个函数中,我在网上找不到任何答案。

我有两个Python文件:

gui.py

代码语言:javascript
代码运行次数:0
运行
复制
from tkinter import *

window = Tk()

entry = Entry(window)
entry.pack()

def get_input():
    user_input = entry.get()

btn = Button(window, text='Get Entry Input', command=get_input)
btn.pack()

window.mainloop()

这里是我想使用user_input的第二个Python文件。

main.py

代码语言:javascript
代码运行次数:0
运行
复制
import gui

show_user_input = gui.user_input
print(show_user_input)

# Obviously this method wouldn't work but I don't know what to do.
# Please help
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-09 03:51:24

这将允许您在按下按钮时从另一个模块调用函数,并传递输入框的值。

注意,我们需要解决一个小问题。command参数需要一个没有参数的函数。我们可以使用lambda函数来解决这个问题。lambda函数是一个匿名函数,可以有0到多个参数,但必须只包含一个表达式。

我们使用lambda:来表示我们的函数没有参数。lambda x:将是一个只有一个参数x的函数。增加更多的参数也是同样的想法。当按下按钮时,我们需要执行的表达式只是对main.show_input的调用,这就是所做的。我还添加了一个no版本的gui.py。这可能有助于了解发生了什么。

main.py

代码语言:javascript
代码运行次数:0
运行
复制
def show_input(x):
    print(x)

gui.py

代码语言:javascript
代码运行次数:0
运行
复制
from tkinter import *
import main

window = Tk()

entry = Entry(window)
entry.pack()

btn = Button(window, text='Get Entry Input', command=lambda: main.show_input(entry.get()))
btn.pack()

window.mainloop()

gui.py no

代码语言:javascript
代码运行次数:0
运行
复制
from tkinter import *
import main

def call_show_input():
    main.show_input(entry.get())

window = Tk()

entry = Entry(window)
entry.pack()

btn = Button(window, text='Get Entry Input', command=call_show_input)
btn.pack()

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

https://stackoverflow.com/questions/72166590

复制
相关文章

相似问题

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