【问题标题】:how to get the the value from the entry widget in tkinter in python3.6如何从python3.6的tkinter中的条目小部件中获取值
【发布时间】:2018-06-18 09:48:14
【问题描述】:

我正在尝试从输入框中获取数据。我没有使用这些变量。当我尝试打印结果时,它显示为空白。我尝试使用 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)

【问题讨论】:

  • 你没有给用户输入任何东西的机会,所以它当然是空的。
  • e1.get() 打印它。
  • 但我使用变量 v1 从 e1 获取值。错了吗?
  • 是的!我得到了答案,而不是使用e1.get() 我应该使用E1.get()。但这对我来说只是反复试验,我不知道其背后的确切原因。谁能告诉我为什么?

标签: python python-3.x tkinter tkinter-entry


【解决方案1】:

这是如何在entry 小部件中获取内容并打印。使用您发布的代码,您正在做很多错误的事情;您不能使用packgrid 将您的小部件放置在同一个窗口中。也永远不要这样做: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()

【讨论】:

    【解决方案2】:

    在输入任何内容之前,您已将 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.
    

    【讨论】:

    • 不。它仍然显示空白区域。我无法理解代码中E1e1 的使用。 E1.get() 对我来说工作正常 Button (F2,text = "Paid",command= lambda:insertdata(E1.get())).pack(side= TOP) 就像这样。
    • @geekarshad 真的吗?当我尝试该解决方案时,我能够获得很好的输出。我将编辑以包含完整的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2013-01-15
    • 2023-03-22
    • 2022-12-08
    • 2023-03-05
    相关资源
    最近更新 更多