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