【发布时间】:2021-03-29 12:54:30
【问题描述】:
这是我在 stackoverflow 中的第一篇文章。
我是一名飞行员,是软件界的新手,正在尝试自己学习 python。
我正在尝试使用 gui 创建一个简单的搜索功能来搜索列表中的多个值。
我为飞行员的姓名和等级创建了 2 个输入框。
我还创建了一个名为 Pilot 的类,其中包含 2 个随机飞行员信息的 2 个相邻列表。
我的目的是在填写姓名和排名框时搜索列表以返回有关飞行员的所有相关信息,但我已经停下来了。我还尝试连接“名称”和“排名”以进行搜索功能,但也失败了。
它给出了以下错误:
结果总是“未找到”
我的代码:
from tkinter import *
root = Tk()
class Pilot():
def __init__(self, name, age, rank, fleet, callsign, fail):
self.name = name
self.age = age
self.rank = rank
self.fleet = fleet
self.callsign = callsign
self.fail = fail
def __repr__ (self):
return "({},{},{},{}, {}, {})".format(self.name, self.age,self.rank,self.fleet, self.callsign, self.fail)
p1= Pilot("tom kazansky","22","lt","f14", "iceman","0")
p2= Pilot("pete mitchell","23","lt","f14", "maverick","3")
pilots =[p1,p2]
label_1 = Label(root, text = "name")
label_2 = Label(root, text = "rank")
entry_1 = Entry(root)
entry_2 = Entry(root)
def p_name(pilots):
return pilots.name
def p_rank(pilots):
return pilots.rank
def search(*pilots, key1 = p_name, key2 = p_rank):
if entry_1 and entry_2 in pilots:
print("found!")
elif entry_1 and entry_2 not in pilots:
print("not found!")
button_1 =Button(root, text = "search", command = search)
label_1.grid(row =0)
label_2.grid(row =1)
entry_1.grid (row =0,column =1)
entry_2.grid (row =1,column =1)
button_1.grid(row =3)
root.mainloop()
是什么阻止了搜索返回记录?也许是关于 *args 或 ** kwargs 的?
【问题讨论】:
-
您的
search方法有一个预期参数pilots。据我所知,您希望在使用该方法中的条件检查成员资格时预先填充它。您要么需要更新按钮以将某些内容传递给search的pilots参数,要么在方法签名中为pilots分配一个默认值。
标签: python database tkinter search