如何訪問包含來自 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
uj5u.com熱心網友回復:
這將允許您在按下按鈕時從另一個模塊呼叫函式并傳遞輸入框的值。
請注意,我們需要解決一個小問題。command引數需要一個沒有引數的函式。我們可以使用 lambda 函式來解決這個問題。lambda 函式是一個匿名函式,可以有 0 到多個引數,但必須只包含一個運算式。
我們用它lambda:來表示我們的函式沒有引數。lambda x:將是一個具有一個引數的函式,x. 添加更多引數也是同樣的想法。按下按鈕時我們需要執行的運算式只是對 的呼叫main.show_input,這就是我們所做的。我還添加了一個無 lambda 版本的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沒有拉姆達
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://www.uj5u.com/qiye/474325.html
