如何从 python3.6 中的 tkinter 中的条目小部件获取值

how to get the the value from the entry widget in tkinter in python3.6

我正在尝试从条目中获取数据box.I我没有使用这些变量。当我尝试打印结果时,它显示为空白。我尝试使用 lambda 但仍然无法正常工作。我是新来的。请告诉我哪里错了。我在网上试过,但它们是旧版本的解决方案。

def insertdata(E1):
       print(E1)


e1 = StringVar()

L1 = Label(F1, text ="Serial No:",anchor = E)
L1.grid(row = 0 ,column = 0)

E1  = Entry(F1,textvariable = e1)
E1.grid(row = 0 ,column = 2, sticky = N)
v1 = e1.get()
Button (F2,text = "Paid",command=lambda:insertdata(v1)).pack(side= TOP)

您已将 v1 设置为 e1.get(),然后才能将任何内容输入条目。

我尝试了下面的代码,它工作正常。

from tkinter import * # SHOULD NOT USE.
F1=Tk()
F2=Tk()
def insertdata(E1):
    print(E1)


e1 = StringVar()

L1 = Label(F1, text ="Serial No:",anchor = E)
L1.grid(row = 0 ,column = 0)

E1  = Entry(F1,textvariable = e1)
E1.grid(row = 0 ,column = 2, sticky = N)

Button (F2,text = "Paid",command=lambda:insertdata(e1.get())).pack(side= TOP) # SHOULD NOT USE.

如何在 entry 小部件中获取内容并打印。使用您发布的代码,您做了很多错误的事情;您不能使用 packgrid 将您的小部件放置在同一个 window 中。也永远不要这样做:Button (F2,text = "Paid",command=lambda:insertdata(v1)).pack(side= TOP),但始终将布局管理器放在下一行。

示例

b = Button (F2,text = "Paid",command=lambda:insertdata(v1))
b.pack(side= TOP)

完整代码

from tkinter import *


def insertdata():
    print(e1)
    print(E1.get())


root = Tk()    

L1 = Label( text="Serial No:", anchor=E)
L1.grid(row=0, column=0)

e1 = StringVar()
E1 = Entry( textvariable=e1)
E1.grid(row=0, column=2, sticky=N)

b = Button( text="Paid", command=insertdata)
b.grid(row=10, column=30)

root.mainloop()