如何从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()
这里是我想使用user_input
的第二个Python文件。
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
发布于 2022-05-08 19:51:24
这将允许您在按下按钮时从另一个模块调用函数,并传递输入框的值。
注意,我们需要解决一个小问题。command
参数需要一个没有参数的函数。我们可以使用lambda函数来解决这个问题。lambda函数是一个匿名函数,可以有0到多个参数,但必须只包含一个表达式。
我们使用lambda:
来表示我们的函数没有参数。lambda x:
将是一个只有一个参数x
的函数。增加更多的参数也是同样的想法。当按下按钮时,我们需要执行的表达式只是对main.show_input
的调用,这就是所做的。我还添加了一个no版本的gui.py
。这可能有助于了解发生了什么。
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
no
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()
https://stackoverflow.com/questions/72166590
复制相似问题