Я пытаюсь получить данные из окна ввода. Я не использую эти переменные. Это показывает мне пустое, когда я пытаюсь напечатать результат. Я пробовал использовать лямбда, но все еще не работал. Я новичок в этом. Пожалуйста, покажи мне, где я ошибаюсь. Я пробовал онлайн, но они более старые версии решений.
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)
Это как получить содержимое в виджетах entry
и печати. С кодом, который вы опубликовали, вы делаете много неправильных вещей; вы не можете использовать pack
и grid
для размещения своего виджета в том же окне. Также никогда не делайте этого: Button (F2,text = "Paid",command=lambda:insertdata(v1)).pack(side= TOP)
, но всегда 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()
Вы установили 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.
E1
и e1
в моем коде. E1.get()
работает нормально для меня Button (F2,text = "Paid",command= lambda:insertdata(E1.get())).pack(side= TOP)
как это.