簡體   English   中英

如何將 tkinter Entry 值傳遞給 Python 中的函數?

[英]How to pass tkinter Entry values to a function in Python?

我想在不使用按鈕的情況下將 tkinter 輸入框中的值傳遞給函數。 我怎么能這樣?

我試過只綁定 Entry 字段,但傳遞的不是條目而是 KeyPress 事件

import tkinter


def print_entry(entry):
    print(entry)

root = tkinter.Tk()
entry_field = tkinter.Entry(root)
entry_field.pack()
entry_field.bind("<Return>", print_entry)
entry_field.focus()
root.mainloop()

我希望得到在輸入框中輸入的值,但得到:

<KeyPress event state=Mod1 keysym=Return keycode=13 char='\r' x=966 y=186>

我想出了一個解決方案:

import tkinter


def print_entry(entry):
    print(entry)


root = tkinter.Tk()
entry_field = tkinter.Entry(root)
entry_field.pack()
entry_field.bind("<Return>", lambda x: print_entry(entry_field.get()))
entry_field.focus()
root.mainloop()

當您綁定一個函數時,該函數將被傳遞一個表示事件的參數。 該參數的屬性之一是widget ,它表示接收事件的小部件。

最常見的解決方案是將值傳遞給回調。 相反,讓回調使用此對象檢索它們需要的信息:

def print_entry(event):
    print(event.widget.get())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM