【问题标题】:getting the contents of each entry in a loop在循环中获取每个条目的内容
【发布时间】:2013-02-13 06:31:58
【问题描述】:

我将 tkinter 与 Python 一起使用,以从用户那里获取查询并在循环中打印每个条目的内容。但是,仅打印最后一个条目的文本。我应该怎么做才能解决这个问题?

for i in range(len(labels)):
    label=Label(V,text=i, relief=RIDGE,width=8)
    label.pack()
    label.grid(row=counter,column=1,padx=5,pady=5)
    entry = Entry(V, relief=SUNKEN,width=30,justify=RIGHT)
    entry.pack()
    entry.grid(row=counter,column=0,padx=10,pady=5)
    def showevent (event):
        print entry.get()

    entry.bind("<Return>", showevent)

【问题讨论】:

    标签: python tkinter printing tkinter-entry


    【解决方案1】:

    这是对闭包的常见误解。基本上,entry 是在函数 run 时查找的,而不是定义的。简单的解决方法是使其成为默认参数:

    def showevent(event,entry=entry):
        print entry.get()
    

    这是可行的,因为默认参数是在创建函数时评估的,而不是在调用它时,所以你总是得到你想要的条目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      相关资源
      最近更新 更多