访问Entry小部件信息:tkinter python

时间:2011-06-28 20:15:09

标签: python tkinter

我正在编写一个Tkinter程序并且有一个根目录,其中标签显示在条目小部件旁边。

EX: 名称 - > SearchTerm ENTRY BOX

我正在尝试从条目wigets创建一个值列表(EX:['','用户输入','用户输入'])

我在根目录中创建了条目小部件,然后有一个获取值的函数:

def get_user_entries(user_entries):

    new_search_terms = []

    for entry in user_entries:
        new_search_terms.append(entry.get())
    return new_search_terms

我希望能够访问名为new_search_terms的列表,以便在其上运行另一个python程序。

我尝试将该功能用作按钮的命令。我试过在不同的地方绑定按钮。我试过在不同的地方调用按钮。我也尝试创建一个类,其中new_search_terms是一个类变量,但由于我无法从上面的函数访问返回的信息,因此更新的类变量不成立。在耗尽互联网和几本书之后,我还没有找到一个例子,其中信息是从Button功能返回而不是打印出来的。我需要能够在其他地方访问此信息。

有没有办法获取我需要的信息,或者在Tkinter中有没有其他方法可以解决这个问题?

我创建按钮的代码:

done = Button(root, text='Done', command= lambda: get_user_entries(user_entries))
done.pack()

以下是创建条目和标签的代码:

def uc_1(original_names, final_names, root):
   user_entries = []
   for index in range(len(original_names)):
      row = Frame(root)
      info = Label(row, text = original_names[index]+'->'+final_names[index])
      user_entry = Entry(row)
      row.pack(side=TOP, fill=X)
      user_entry.pack(side=RIGHT, expand=YES, fill=X)
      user_entries.append(user_entry)
      info.pack(side=LEFT)
   return user_entries 

谢谢!

1 个答案:

答案 0 :(得分:0)

按钮命令不会“返回”。他们这样做,但是他们返回到事件循环,所以没有任何东西可以处理它返回的任何东西。

话虽如此,很难知道你在问什么。你说“我无法从函数中访问返回的信息”,但我认为没有理由不这样做。如果你调用它,它不会返回return语句返回的内容吗?这似乎是不可能的。

如果你配置一个按钮来运行'self.OnButton',并定义'self.OnButton'来调用你的函数'get_user_entries',会发生什么?它不会重新调整吗?

以这种方式看待:你的按钮功能不应该返回某些东西,它应该某事。它可以通过调用你的函数来获取它返回的内容,然后调用你想要它调用的其他内容。