如何从 tkinter 中的输入框访问包含输入的变量并在另一个模块中使用它?
How to access a variable containing input from entry box in tkinter and use it in another module?
如何访问包含来自 tkinter 输入框的用户输入的变量?
我想在另一个模块中使用输入。我很难尝试这样做,因为它在一个函数中,我在网上找不到任何答案。
我有两个 Python 文件:
gui.py
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()
这是我的第二个 Python 文件,我想在其中使用 user_input
.
main.py
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
这将允许您在按下按钮时从另一个模块调用函数并传递输入框的值。
请注意,我们需要解决一个小问题。 command
参数需要一个没有参数的函数。我们可以使用 lambda 函数来解决这个问题。 lambda 函数是一种匿名函数,可以有 0 到多个参数,但必须只包含一个表达式。
我们使用lambda:
来表示我们的函数没有参数。 lambda x:
将是一个具有一个参数 x
的函数。增加更多的参数也是一样的思路。我们需要在按下按钮时执行的表达式只是调用 main.show_input
,这就是完成的。我还添加了 gui.py
的无 lambda 版本。它可能有助于了解正在发生的事情。
main.py
def show_input(x):
print(x)
gui.py
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
没有 lambda
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()
如何访问包含来自 tkinter 输入框的用户输入的变量? 我想在另一个模块中使用输入。我很难尝试这样做,因为它在一个函数中,我在网上找不到任何答案。
我有两个 Python 文件:
gui.py
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()
这是我的第二个 Python 文件,我想在其中使用 user_input
.
main.py
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
这将允许您在按下按钮时从另一个模块调用函数并传递输入框的值。
请注意,我们需要解决一个小问题。 command
参数需要一个没有参数的函数。我们可以使用 lambda 函数来解决这个问题。 lambda 函数是一种匿名函数,可以有 0 到多个参数,但必须只包含一个表达式。
我们使用lambda:
来表示我们的函数没有参数。 lambda x:
将是一个具有一个参数 x
的函数。增加更多的参数也是一样的思路。我们需要在按下按钮时执行的表达式只是调用 main.show_input
,这就是完成的。我还添加了 gui.py
的无 lambda 版本。它可能有助于了解正在发生的事情。
main.py
def show_input(x):
print(x)
gui.py
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
没有 lambda
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()