Tkinter 无法在两个函数之间传递条目数据

Tkinter fails to pass Entry data between two functions

当我 运行 以下代码时,我收到以下错误: NameError: name 'barE' is not defined.

Tkinter 的 Entry 是否可以从一个功能到另一个功能?我在这个程序中有一个全局 window 和框架,它使用与下面相同的语法无错误地传递用户的输入。

def newSearchForm():
    window2=Tk()
    window2.geometry("650x400")
    frame = Frame(window2)
    frame.pack(side="top", expand=True, fill="both")
    
    barcode=Label(frame,text="Please Enter The Barcode", font='time 15')
    barcode.place(x=10,y=90)
    barE=Entry(frame)
    barE.place(x=250,y=90)

    isbn=Label(frame,text="Please Enter The ISBN", font='time 15')
    isbn.place(x=10,y=130)
    isbE=Entry(frame)
    isbE.place(x=250,y=130)
    
    repeatSearchButton=Button(frame,text="Enter", command=newSearch,width=12,bg='gray')
    repeatSearchButton.place(x=150,y=170)
    
    window.mainloop()

def newSearch():
    uB = barE.get()
    uI = isbE.get()
    carlSearch(uB, uI)
    itemTitle=workspace.find_element_by_xpath('//*[@id="mainContent"]/div[2]/div[2]/div[2]/div[1]/div[1]/div').text
    ingramSearch()
    fantasticFictionSearch(itemTitle)
    outputMetadata()

我尝试使用 lambda 命令显式传递变量,但没有成功。 我尝试使用 anexising window 但没有用,所以我销毁了它并创建了一个新的。

我建议您使用文本变量。您可以通过 StringVar 创建一个文本变量并在条目小部件中分配它。

有关为什么使用文本变量的更多详细信息,请参阅 Should I use Entry's .get() or its textvariable's for Tkinter in Python?

用法:

barE_var=StringVar()
barE=Entry(frame,textvariable=barE_var)
barE.place(x=250,y=90)

要获取值,请使用 barE_var.get()

Tkinter 的 Entry 是否可以从一个功能到另一个功能?

它确实有效,但必须使用 global 关键字才能访问它们。

def newSearch():
    global barE_var