python - Tkinter 按钮未从函数返回值
问题描述
我目前正在尝试为一个函数创建一个小型 UI,该函数根据已输入的字符串从数据框中返回一些值。字符串被拆分,每个单独的子字符串都使用 iloc 在我的数据框中查找。问题是,当使用 Tkinter 中的按钮调用此函数时,没有返回任何内容。没有 Tkinter 就可以正常工作,所以我不确定错误发生在哪里。
master = Tk()
e1 = Entry(master)
list_of_inputs = e1.get().split()
def show_entry_fields():
i=0
while (i<len(list_of_inputs)):
return (backend.loc[backend['Keyword'] == list_of_inputs[i]])
i=i+1
Label(master, text="Enter Title").grid(row=0)
e1.grid(row=0, column=1)
Button(master, text='Show', command=show_entry_fields).grid(row=0, column=2, sticky=W, pady=4)
mainloop( )
解决方案
几件事:
- 在用户有机会填写之前,您正在检查您的条目的值。您应该仅在按下按钮时获取用户输入。
show_entry_fields()
无论提供多少输入,函数中的 while 循环将始终运行一次,因为您在循环中放置了 return 语句- 您的处理程序函数必须修改现有的数据结构或图形组件,如果您返回结果,您将无法收集它
可能的实现:
master = Tk()
e1 = Entry(master)
def show_entry_fields():
list_of_inputs = e1.get().split()
result = []
for entry in list_of_inputs:
result.append(backend.loc[backend['Keyword']] == entry)
# Alternatively, you can create the list with
# result = [backend.loc[backend['Keyword']] == entry for entry in list_of_inputs]
# Here, deal with the result
Label(master, text="Enter Title").grid(row=0)
e1.grid(row=0, column=1)
Button(master, text='Show', command=show_entry_fields).grid(row=0, column=2, sticky=W, pady=4)
mainloop()
推荐阅读
- java - 使用 cmd 在启动时运行 sh 文件 - 能够看到它
- mysql - SQL 查询到 DQL
- python - Python 用 win32com 在 excel 中读取
- java - 我正在尝试打印图案,但无法正确打印
- php - 尝试制作 Roblox 群组支付 API;不支付或输出
- django - 在 nginx 后面使用 Daphne
- alexa - 如何在 Alexa 技能中添加对插槽值的验证
- amazon-web-services - 我们可以在不公开的情况下将 AWS 机器端口暴露给 Lambda 函数吗
- java - 400. 这是一个错误。错误:redirect_uri_mismatch。Google 社交登录中的重定向 URI 错误
- c++ - 无法使用 gdb 在 VS 代码中调试 C++