我正在编写一个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
谢谢!
答案 0 :(得分:0)
按钮命令不会“返回”。他们这样做,但是他们返回到事件循环,所以没有任何东西可以处理它返回的任何东西。
话虽如此,很难知道你在问什么。你说“我无法从函数中访问返回的信息”,但我认为没有理由不这样做。如果你调用它,它不会返回return语句返回的内容吗?这似乎是不可能的。
如果你配置一个按钮来运行'self.OnButton',并定义'self.OnButton'来调用你的函数'get_user_entries',会发生什么?它不会重新调整吗?
以这种方式看待:你的按钮功能不应该返回某些东西,它应该做某事。它可以通过调用你的函数来获取它返回的内容,然后调用你想要它调用的其他内容。